ncurses - ncurses
Deweloper(zy) | Thomas E. Dickey |
---|---|
Pierwsze wydanie | 1993 |
Wersja stabilna | 6.2 / 12 lutego 2020
|
Magazyn | |
Napisane w | C |
System operacyjny | POSIX |
Rodzaj | Zestaw narzędzi do widżetów |
Licencja | Licencja X11 |
Strona internetowa |
niewidzialna-wyspa |
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ż
- conio.h – plik nagłówkowy AC używany w kompilatorach MS-DOS do tworzenia tekstowych interfejsów użytkownika
- Zestaw rozwojowy przekleństw
- Okno dialogowe (oprogramowanie)
- PDKursy
- S-Lang (biblioteka programistyczna)
- SMG$ – Biblioteka do zarządzania ekranem dostępna pod OpenVMS