ncurses - ncurses

ncurses
Linux-menuconfig.png
Deweloper(zy) Thomas E. Dickey
Pierwsze wydanie 1993 ; 28 lat temu ( 1993 )
Wersja stabilna
6.2 / 12 lutego 2020 ; 20 miesięcy temu ( 2020-02-12 )
Magazyn
Napisane w C
System operacyjny POSIX
Rodzaj Zestaw narzędzi do widżetów
Licencja Licencja X11
Strona internetowa niewidzialna-wyspa .net /ncurses / Edytuj to na Wikidata

ncurses (nowe curses ) to biblioteka programistyczna udostępniająca interfejs programowania aplikacji (API), który umożliwia programiście pisanie tekstowych interfejsów użytkownika w sposób niezależny od terminala. Jest to zestaw narzędzi do tworzenia aplikacji "podobnych do GUI " , które działają w emulatorze terminala . Optymalizuje również zmiany ekranu, aby zmniejszyć opóźnienia występujące podczas korzystania z powłok zdalnych .

ncurses jest darmową emulacją curses z Systemu V Release 4.0 (SVr4) .

Istnieją powiązania dla ncurses w różnych językach programowania, w tym Ada , Python , Gambas , Ruby , PHP , JavaScript i Perl .

Historia

Jako nowa wersja, ncurses jest darmową emulacją curses System V Release 4.0 (SVr4) , która sama w sobie była ulepszeniem w stosunku do wycofanych curses 4.4 BSD. Standard XSI Curses wydany przez X/Open jest wyraźnie i ściśle wzorowany na System V .

pomstowanie

Pierwsza biblioteka curses została opracowana na Uniwersytecie Kalifornijskim w Berkeley, dla systemu operacyjnego BSD , około 1980 roku, aby wspierać Rogue , tekstową grę przygodową. Pierwotnie używał biblioteki termcap , która była używana w innych programach, takich jak edytor vi .

Sukces biblioteki curses BSD skłonił Bell Labs do wydania ulepszonej biblioteki curses w swoich systemach uniksowych System V Release 2 . Ta biblioteka była potężniejsza i zamiast termcap używała terminfo . Jednakże, ze względu na politykę AT&T dotyczącą dystrybucji kodu źródłowego, ta ulepszona biblioteka curses nie spotkała się zbytnio z akceptacją społeczności BSD.

przekleństwa

Około 1982 roku Pavel Curtis rozpoczął pracę nad darmowym klonem curses Bell Labs, nazwanym pcurses , który był utrzymywany przez różnych ludzi do 1986 roku.

ncurses

Biblioteka pcurses została dodatkowo ulepszona, gdy Zeyd Ben-Halim przejął prace rozwojowe pod koniec 1991 roku. Nowa biblioteka została wydana jako ncurses w listopadzie 1993 roku, z wersją 1.8.1 jako pierwszą główną wersją. Kolejne prace, poprzez wersję 1.8.8 (M1995), prowadził Eric S. Raymond , który dodał formularz i biblioteki menu napisane przez Juergena Pfeifera. Od 1996 roku prowadzi go Thomas E. Dickey .

Większość wywołań ncurses można łatwo przenieść na stare curses. Implementacje curses Systemu V mogą obsługiwać programy curses BSD już po rekompilacji . Jednak kilka obszarów jest problematycznych, takich jak obsługa zmiany rozmiaru terminala, ponieważ w starych curses nie ma odpowiednika.

Baza danych terminala

Ncurses może używać terminfo (z rozszerzalnymi danymi) lub termcap . Inne implementacje curses zazwyczaj używają terminfo ; mniejszość używa termcap . Niewielu (mytinfo był starszym wyjątkiem) używa obu.

Licencja

Ncurses jest częścią Projektu GNU , ale nie jest rozpowszechniany na licencji GNU GPL ani LGPL . Zamiast tego jest rozpowszechniany na podstawie liberalnej licencji wolnego oprogramowania , tj . Licencji MIT . Wynika to z umowy zawartej z Fundacją Wolnego Oprogramowania w czasie, gdy twórcy przypisali swoje prawa autorskie.

Kiedy zawarto porozumienie o przeniesieniu praw na FSF, istniała klauzula, która stanowiła:

Fundacja obiecuje, że wszelka dystrybucja Pakietu lub jakiejkolwiek pracy „na podstawie Pakietu”, która odbywa się pod kontrolą Fundacji lub jej agentów lub cesjonariuszy, odbywać się będzie na warunkach, które wyraźnie i bezterminowo zezwalają każdemu, kto posiada kopię pracy, do której mają zastosowanie warunki, oraz posiadanie dokładnego powiadomienia o tych warunkach, w celu redystrybucji kopii pracy do kogokolwiek na tych samych warunkach.

Według opiekuna, Thomasa E. Dickeya, wyklucza to ponowne licencjonowanie GPL w jakiejkolwiek wersji, ponieważ nakładałoby to ograniczenia na programy, które będą mogły łączyć się z bibliotekami.

Programy wykorzystujące ncurses

Istnieją setki programów używających ncurses. Niektóre, takie jak GNU Screen i w3m , używają tylko interfejsu termcap i samodzielnie zarządzają ekranem. Inne, takie jak GNU Midnight Commander i YaST , używają interfejsu programistycznego curses.

Zobacz też

Bibliografia

Zewnętrzne linki