.\" -*- coding: UTF-8 -*- '\" t .\"*************************************************************************** .\" Copyright 2018-2024,2025 Thomas E. Dickey * .\" Copyright 1998-2016,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: term.5,v 1.85 2025/08/16 19:11:47 tom Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH term 5 "16 august 2025" "ncurses 6.6" "Formate de fișiere" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .ds ' \(aq .ds ^ \(ha .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .ds ' ' .ds ^ ^ .\} .ie n .ds CW R .el \{ .ie \n(.g .ds CW CR .el .ds CW CW .\} . .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. . .SH NUME .\"SH SYNOPSIS term \- descrierea terminalului compilată \fI\%term\%info\fP .SH DESCRIERE \fB\%tic\fP(1) compilează o descriere de tip terminal \fI\%term\%info\fP, iar \fB\%setupterm\fP(3X) o citește. O descriere compilată poate fi stocată într\-un fișier sau într\-o bază de date care poate conține numeroase astfel de descrieri. În plus, o descriere compilată poate fi într\-unul dintre cele două formate: unul similar cu cel utilizat de System\ V și un format mai nou, extensibil, utilizat exclusiv de \fI\%ncurses\fP. .SS "Locația de stocare" Descrierile \fI\%term\%info compilate sunt plasate\fP în directorul \fI\%/usr/share/terminfo\fP. La compilarea bibliotecilor \fI\%ncurses\fP se selectează una dintre cele două configurații. .TP 5 \fBdirectory tree\fP Se utilizează o schemă pe două niveluri pentru a evita căutarea liniară într\-un director de sistem Unix de mari dimensiuni: \fI\%/usr/share/terminfo/\fPc\fI/\fPnume, unde \fInume\fP este numele terminalului, iar \fIc\fP este primul caracter al lui \fInume\fP. Astfel, descrierea compilată a tipului de terminal „act4” se găsește în fișierul \fI\%/usr/share/terminfo/a/act4\fP. Sinonimele pentru același terminal sunt implementate prin legături multiple către același fișier compilat. .TP 5 \fBhashed database\fP Folosind API\-ul bazei de date Berkeley, sunt stocate două tipuri de înregistrări: datele \fI\%term\%info\fP în același format cu cel stocat într\-o structură arborescentă de directoare, având ca cheie numele tipului principal al terminalului, precum și înregistrări care conțin doar alias care fac trimitere la numele principal. .IP Deși este conceput pentru a scrie în baze de date cu structură hash, \fI\%ncurses\fP poate totuși citi baze de date \fI\%term\%info\fP organizate sub forma unui arbore de directoare, dar nu poate scrie intrări în acest arbore. Poate scrie (sau rescrie) intrări în baza de date cu structură hash. .IP \fI\%ncurses\fP face distincția între cele două cazuri din variabilele de mediu \fI\%TERMINFO\fP și \fI\%TERMINFO_DIRS\fP, presupunând existența unui arbore de directoare pentru intrările care corespund unui director existent și, în caz contrar, a unei baze de date cu tabele hash. .SS "Formatul de stocare vechi" Formatul a fost ales astfel încât să fie identic pe toate dispozitivele. Se presupune că un octet are o lățime de cel puțin opt biți, dar nu se fac presupuneri cu privire la ordinea biților sau la extinderea semnului. .PP Fișierul este împărțit în șase părți: .RS 5 .IP (a) 4 \fIantet\fP, .IP (b) \fInumele terminalelor\fP, .IP (c) \fIfanioane booleene\fP, .IP (d) \fInumere\fP, .IP (e) \fIșiruri\fP, și .IP (f) un \fItabel de șiruri\fP. .RE .PP Secțiunea \fIantet\fP începe fișierul. Această secțiune conține șase numere întregi scurte în formatul descris mai jos. Aceste numere întregi sunt .RS 5 .TP 5 (1) \fInumărul magic\fP (octal 0432); .TP 5 (2) dimensiunea, în octeți, a secțiunii \fInumele terminalelor\fP; .TP 5 (3) numărul de octeți din secțiunea \fIfanioane booleene\fP; .TP 5 (4) numărul de numere întregi scurte din secțiunea \fInumere\fP; .TP 5 (5) numărul de decalaje(poziții) (numere întregi scurte) din secțiunea \fIșiruri\fP; .TP 5 (6) dimensinea, în octeți, a \fItabelului de șiruri\fP. .RE .PP Funcționalitățile din secțiunile \fIfanioane booleene\fP, \fInumere\fP și \fIșiruri\fP sunt prezentate în aceeași ordine ca în fișierul de antet \fIterm.h\fP. .PP Numerele întregi scurte au semn, se încadrează în intervalul de la \-32768 la 32767 și sunt stocate în format little\-endian. .PP Numerele dintr\-o descriere de terminal, indiferent dacă sunt intrări în tabelul \fInumere\fP sau \fIșiruri\fP, sunt numere întregi pozitive. Fanioanele booleene sunt tratate ca numere întregi pozitive de un octet. În fiecare caz, aceste numere întregi pozitive reprezintă o capacitate a terminalului. Compilatorul de terminale \fI\%tic\fP utilizează numere întregi negative pentru a gestiona situațiile în care o capacitate nu este disponibilă: .bP Dacă o capacitate este absentă din acest terminal, \fI\%tic\fP stochează valoarea \-1 în tabelul corespunzător. .IP Valoarea numărului întreg \-1 este reprezentată de doi octeți: 0377, 0377. .br Valorile booleene absente sunt reprezentate de octetul 0 (fals). .bP Dacă o capacitate a fost anulată din acest terminal, \fI\%tic\fP stochează valoarea \-2 în tabelul corespunzător. .IP Valoarea numărului întreg \-2 este reprezentată de doi octeți: 0377, 0376. .br Valoarea booleană \-2 este reprezentată de octetul 0376. .br .bP Alte valori negative nu sunt permise. .PP Secțiunea \fInumele terminalelor\fP urmează după \fIantet\fP. Aceasta conține prima linie a descrierii \fI\%term\%info\fP, enumerând diversele denumiri ale terminalului, separate prin caracterul „|”. Secțiunea \fInumele terminalelor\fP se încheie cu un caracter \s-1ASCII NUL\s+1. .PP Secțiunea \fIfanioane booleene\fP are un octet pentru fiecare fanion. Valorile booleene sunt fie 1, fie 0 (adevărat sau fals), în funcție de faptul dacă terminalul acceptă sau nu capacitatea dată. .PP Între secțiunea \fIfanioane booleene\fP și secțiunea \fInumere\fP se va insera un octet nul, dacă este necesar, pentru a se asigura că secțiunea \fInumere\fP începe cu un octet par. Aceasta este o rămășiță a arhitecturii cu adresare pe cuvinte a PDP\-11, concepută inițial pentru a evita erorile provocate de adresarea unui cuvânt la o graniță de octet impar. Toate numerele întregi de tip short sunt aliniate la o graniță de cuvânt de tip short. .PP Secțiunea \fInumere\fP este similară cu secțiunea \fIfanioane booleene\fP \&. Fiecare capacitate ocupă doi octeți și este stocată sub forma unui număr întreg scurt în format little\-endian. .PP Secțiunea \fIșiruri\fP este, de asemenea, similară. Fiecare capacitate este stocată sub forma unui număr întreg scurt. Valoarea capacității reprezintă un index în \fItabelul de șiruri\fP. .PP \fItabelul de șiruri\fP este ultima secțiune. Aceasta conține toate valorile capacităților șirurilor menționate în secțiunea \fIșiruri\fP. Fiecare șir este terminat cu caracterul nul. Caracterele speciale din notația \*^X sau \ec sunt stocate în forma lor interpretată, nu în reprezentarea de afișare. Informațiile de completare \fB$<\fP\fInn\fP\fB>\fP și informațiile despre parametri \fB%x\fP sunt stocate intacte, în formă neinterpretată. .SS "Formatul de stocare extins" Secțiunea anterioară descrie formatul binar convențional \fI\%term\%info\fP. Cu câteva variații minore ale pozițiilor de alocare (vezi PORTABILITATE), același format binar este utilizat în toate sistemele Unix moderne. Fiecare sistem utilizează un set standard de tipuri de date booleene, numerice sau de tip șir de caractere. .PP Bibliotecile și aplicațiile \fI\%ncurses\fP acceptă formatul binar extins \fI\%term\%info\fP, permițând utilizatorilor să definească capacități care sunt încărcate în timpul rulării. Această extensie este posibilă datorită faptului că celelalte implementări încetează să mai citească datele \fI\%term\%info\fP atunci când ajung la capătul dimensiunii specificate în antet. \fI\%ncurses\fP verifică dimensiunea și, dacă aceasta depășește cea specificată în antet, continuă să analizeze conform propriei sale scheme. .PP Mai întâi, citește antetul extins (5 numere întregi scurte): .RS 5 .TP 5 (1) numărul de capacități booleene extinse .TP 5 (2) numărul de capacități numerice extinse .TP 5 (3) numărul de capacități de șiruri extinse .TP 5 (4) numărul de elemente din tabelul de șiruri extins .TP 5 (5) dimensiunea tabelului de șiruri extins, exprimată în octeți .RE .PP Valorile de numărare și dimensiune pentru tabelul extins de șiruri includ atât capacitatea extinsă \fInume\fP, cât și capacitatea extinsă \fIvaloare\fP. .PP Pe baza numerelor și dimensiunilor, \fI\%ncurses\fP alocă tabele și citește datele pentru capacitățile extinse în aceeași ordine ca și informațiile din antet. .PP Tabelul de șiruri extins conține valori pentru capacitățile șirurilor. După aceste valori, tabelul conține, în ordine, denumirile fiecărei capacități extinse: booleană, numerică și de șir. .PP Prin stocarea descrierilor terminalelor în acest mod, \fI\%ncurses\fP poate oferi o bază de date utilă pentru aplicațiile vechi, precum și date pentru aplicațiile care necesită mai multe informații despre un tip de terminal decât se anticipase în X/Open Curses. Consultați \fB\%user_caps\fP(5) pentru o prezentare generală a modului în care \fI\%ncurses\fP utilizează aceste informații extinse. .PP Aplicațiile care manipulează date de terminal pot utiliza definițiile descrise în \fB\%term_variables\fP(3X), asociind numele lungi ale capacităților cu elementele structurii \fI\%TERMTYPE\fP. . .SS "Formatul extins pentru numere" Uneori, numerele întregi cu semn de 16 biți nu sunt suficient de mari. \fI\%ncurses\fP 6.1 a introdus un nou format prin efectuarea unor modificări în formatul vechi: .bP un număr magic diferit (octal 01036) .bP schimbarea tipului pentru tabelul de \fInumere\fP de la întregi pe 16 biți cu semn la întregi pe 32 de biți cu semn. .PP Pentru a asigura compatibilitatea, biblioteca pune la dispoziția utilizatorilor direcți ai structurii \fI\%TERMTYPE\fP aceleași structuri de date ca și în formatele anterioare. Cu toate acestea, aceasta nu poate furniza apelanților numerele extinse. Biblioteca utilizează o structură de date similară, dar ascunsă, \fI\%TERMTYPE2\fP, pentru a furniza date funcțiilor \fI\%term\%info\fP. .SH FIȘIERE .TP \fI/usr/share/terminfo\fP baza de date cu descrierea terminalului compilat .SH PORTABILITATE .SS setupterm Rețineți că este posibil ca \fBsetupterm\fP să aștepte un set de capacități diferit de cel prezent efectiv în fișier. Fie baza de date a fost actualizată de la recompilarea lui \fBsetupterm\fP (ceea ce duce la apariția unor intrări suplimentare nerecunoscute în fișier), fie programul a fost recompilat mai recent decât a fost actualizată baza de date (ceea ce duce la lipsa unor intrări). Rutina \fBsetupterm\fP trebuie să fie pregătită pentru ambele posibilități \- de aceea sunt incluse numerele și dimensiunile. De asemenea, noile capacități trebuie adăugate întotdeauna la sfârșitul listelor de capacități booleene, numerice și de tip șir. .SS "Formatul binar" X/Open Curses nu specifică un format pentru baza de date \fI\%term\%info\fP. System V \fIcurses\fP folosea o structură ierarhică de fișiere binare, câte unul pentru fiecare descriere de terminal. .PP În ciuda utilizării consecvente a numerelor în format little\-endian și a formatului altfel intuitiv, nu este recomandabil să te bazezi pe portabilitatea intrărilor binare \fI\%term\%info\fP între versiunile comerciale de Unix. Problema este că există cel puțin trei versiuni de \fI\%term\%info\fP (sub HP\-UX, AIX și OSF/1), fiecare dintre ele divergând de System\ V \fI\%term\%info\fP după SVr1 și adăugând capacități de extensie la tabelul de șiruri care (în format binar) intră în conflict cu extensiile System\ V și X/Open Curses. Consultați \fB\%terminfo\fP(5) pentru o discuție detaliată a problemelor de compatibilitate a sursei \fI\%term\%info\fP. .PP Această implementare este, în mod implicit, compatibilă cu formatul binar \fI\%term\%info\fP utilizat de Solaris \fIcurses\fP, cu excepția câtorva detalii mai puțin utilizate în care s\-a constatat că acesta din urmă nu corespundea cu X/Open Curses. Formatul utilizat de celelalte versiuni Unix poate fi adaptat prin compilarea \fI\%ncurses\fP cu diferite opțiuni de configurare. .SS "Coduri magice" Numărul magic dintr\-un fișier binar \fI\%term\%info\fP este reprezentat de primii 16 biți (doi octeți). Pe lângă faptul că sporește fiabilitatea verificării de către bibliotecă a faptului că un fișier este de tip \fI\%term\%info\fP, instrumente precum \fIfile\fP(1) îl utilizează și pentru a identifica formatul fișierului. System\ V a definit mai multe numere magice, cu 0433, 0435 ca capturi de ecran (vezi \fB\%scr_dump\fP(5)). Această implementare folosește 01036 ca o continuare a acelei secvențe, dar cu un octet de ordin superior diferit pentru a evita confuzia. .SS "Structura \fITERMTYPE\fP" Pentru aplicațiile vechi se oferă acces direct la structura \fI\%TERMTYPE\fP. Aplicațiile portabile ar trebui să utilizeze \fB\%tigetflag\fP(3X) și funcțiile conexe pentru a citi capacitățile terminalului. .SS "Nume de terminale cu majuscule și minuscule amestecate" Un număr redus de descrieri ale terminalelor utilizează caractere majuscule în denumirile lor. Dacă sistemul de fișiere subiacent nu face diferența între majuscule și minuscule, \fI\%ncurses\fP reprezintă „primul caracter” al denumirii terminalului utilizat ca nivel intermediar al unui arbore de directoare în format hexazecimal (cu două caractere) .SS Limite \fI\%ncurses\fP stochează descrierile terminalelor compilate în trei formate conexe, descrise în subsecțiunile .bP \fBFormatul de stocare vechi\fP, .bP \fBFormatul de stocare extins\fP și .bP \fBFormatul extins pentru numere\fP. .PP Formatul de stocare vechi și formatul numeric extins se deosebesc prin tipurile de valori numerice pe care le pot stoca (de exemplu, numere întregi pe 16 biți față de cele pe 32 de biți). Formatul de stocare extins introdus de \fI\%ncurses\fP 5.0 adaugă date la oricare dintre aceste formate. .PP Există câteva restricții: .bP numărul total de intrări compilate nu poate depăși 4096 de octeți în formatul vechi. .bP numărul total de intrări compilate nu poate depăși 32768 de octeți în formatul extins. .bP câmpul „nume” nu poate depăși 128 de octeți. .PP Intrările compilate sunt limitate la 32768 de octeți, deoarece decalajele din \fItabelul de șiruri\fP utilizează numere întregi de doi octeți. Formatul vechi ar fi putut admite intrări de 32768 de octeți, dar era limitat la cei 4096 de octeți ai unei pagini de memorie virtuală. .SH EXEMPLE Iată o scurtă descriere a modelului Lear\-Siegler ADM\-3, un terminal vechi, popular, deși destul de rudimentar. .PP .EX .nf adm3a|lsi adm3a, am, cols#80, lines#24, bel=\*^G, clear=\e032$<1>, cr=\*^M, cub1=\*^H, cud1=\*^J, cuf1=\*^L, cup=\eE=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\*^K, home=\*^\*^, ind=\*^J, .fi .EE .PP Urmează o captură hexazecimală a descrierii sale de terminal compilate (în formatul vechi). .PP .if t .in +4n .TS Lp-1. \f[\*(CW]0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3\fR \f[\*(CW]0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.\fR \f[\*(CW]0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........\fR \f[\*(CW]0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.\*'...\fR \f[\*(CW]0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..\-.....\fR \f[\*(CW]0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1\fR \f[\*(CW]0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c\fR \f[\*(CW]0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....\fR \f[\*(CW]0150 00 08 00 0c 00 0b 00 0a 00 ........ .\fR .TE .in .SH AUTORI Thomas E. Dickey .br formatul extins \fI\%term\%info\fP pentru \fI\%ncurses\fP 5.0 .br suport pentru baze de date cu tabele hash pentru \fI\%ncurses\fP 5.6 .br suport pentru numere extinse pentru \fI\%ncurses\fP 6.1 .sp Eric S. Raymond .br formatul vechi documentat \fI\%term\%info\fP (cel utilizat de \fI\%pcurses\fP). .SH "CONSULTAȚI ȘI" \fB\%curses\fP(3X), \fB\%curs_terminfo\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 .