ncurses - ncurses

nurse
Linux-menuconfig.png
menuconfig basé sur ncurses
Développeur(s) Thomas E. Dickey
Première version 1993 ; il y a 28 ans ( 1993 )
Version stable
6.2 / 12 février 2020 ; il y a 20 mois ( 2020-02-12 )
Dépôt
Écrit en C
Système opérateur POSIX
Taper Boîte à outils de widgets
Licence Licence X11
Site Internet île-invisible .net /ncurses / Modifiez ceci sur Wikidata

ncurses (new curses ) est une bibliothèque de programmation fournissant une interface de programmation d'application (API) qui permet au programmeur d'écrire des interfaces utilisateur basées sur du texte d'une manière indépendante du terminal. Il s'agit d'une boîte à outils pour développer un logiciel d'application « de type GUI » qui s'exécute sous un émulateur de terminal . Il optimise également les changements d'écran, afin de réduire la latence rencontrée lors de l'utilisation de shells distants .

ncurses est une émulation de logiciel libre des curses System V Release 4.0 (SVr4) .

Il existe des liaisons pour ncurses dans divers langages de programmation, notamment Ada , Python , Gambas , Ruby , PHP , JavaScript et Perl .

Histoire

En tant que nouvelle version, ncurses est une émulation logicielle gratuite des curses System V Release 4.0 (SVr4) , qui était elle-même une amélioration par rapport aux curses 4.4 BSD abandonnés. La norme XSI Curses émise par X/Open est explicitement et étroitement calquée sur System V .

malédictions

La première bibliothèque de malédictions a été développée à l'Université de Californie à Berkeley, pour un système d'exploitation BSD , vers 1980 afin de prendre en charge Rogue , un jeu d'aventure basé sur du texte. Il utilisait à l' origine la bibliothèque termcap , qui était utilisée dans d'autres programmes, tels que l' éditeur vi .

Le succès de la bibliothèque de malédictions BSD a incité Bell Labs à publier une bibliothèque de malédictions améliorée dans leurs systèmes Unix System V Release 2 . Cette bibliothèque était plus puissante et au lieu d'utiliser termcap, elle utilisait terminfo . Cependant, en raison de la politique d' AT&T concernant la distribution du code source, cette bibliothèque de malédictions améliorée n'avait pas beaucoup d'acceptation dans la communauté BSD.

les malédictions

Vers 1982, Pavel Curtis a commencé à travailler sur un clone gratuit des malédictions des Bell Labs, nommé pcurses , qui a été maintenu par diverses personnes jusqu'en 1986.

nurse

La bibliothèque pcurses a été encore améliorée lorsque Zeyd Ben-Halim a repris l'effort de développement à la fin de 1991. La nouvelle bibliothèque a été publiée sous le nom de ncurses en novembre 1993, avec la version 1.8.1 comme première version majeure. Les travaux ultérieurs, jusqu'à la version 1.8.8 (M1995), ont été dirigés par Eric S. Raymond , qui a ajouté les bibliothèques de formulaires et de menus écrites par Juergen Pfeifer. Depuis 1996, il est entretenu par Thomas E. Dickey .

La plupart des appels ncurses peuvent être facilement transférés vers les anciennes malédictions. Les implémentations de curses System V peuvent prendre en charge les programmes curses BSD avec juste une recompilation . Cependant, quelques domaines sont problématiques, tels que la gestion du redimensionnement des terminaux, car aucune contrepartie n'existe dans les anciennes malédictions.

Base de données des terminaux

Ncurses peut utiliser terminfo (avec des données extensibles) ou termcap . D'autres implémentations de curses utilisent généralement terminfo ; une minorité utilise termcap . Peu (mytinfo était une exception plus ancienne) utilisent les deux.

Licence

Ncurses fait partie du projet GNU , mais n'est pas distribué sous la GNU GPL ou la LGPL . Au lieu de cela, il est distribué sous une licence de logiciel libre permissive , c'est-à-dire la licence MIT . Cela est dû à l'accord passé avec la Free Software Foundation au moment où les développeurs ont cédé leurs droits d'auteur.

Lorsque l'accord a été conclu pour transmettre les droits à la FSF, il y avait une clause qui stipulait :

La Fondation s'engage à ce que toute distribution de l'Ensemble, ou de toute œuvre "basée sur l'Ensemble", qui a lieu sous le contrôle de la Fondation ou de ses agents ou ayants droit, se fasse à des conditions qui permettent explicitement et perpétuellement à toute personne possédant une copie de l'œuvre à laquelle les conditions s'appliquent, et en possession d'un avis précis de ces conditions, de redistribuer des copies de l'œuvre à quiconque selon les mêmes conditions.

Selon le mainteneur Thomas E. Dickey, cela exclut une nouvelle licence sous GPL dans n'importe quelle version, car cela imposerait des restrictions sur les programmes qui pourront se lier aux bibliothèques.

Programmes utilisant ncurses

Il existe des centaines de programmes qui utilisent ncurses. Certains, tels que GNU Screen et w3m , n'utilisent que l' interface termcap et effectuent eux-mêmes la gestion de l'écran. D'autres, comme GNU Midnight Commander et YaST , utilisent l'interface de programmation curses.

Voir également

Les références

Liens externes