The first curses library was written by
Ken Arnold and originally released with
BSD UNIX, where it was used for several games, most notably
Rogue. Some improvements were made to the BSD library in the 1990s as "4.4BSD" curses, e.g., to provide more than one type of video highlighting. However, those are not widely used. The name "curses" is a pun on
cursor optimization. Sometimes it is incorrectly stated that curses was used by the
vi editor; in actuality, the code in curses that optimizes moving the cursor was borrowed from vi, which predated curses. A few years later,
Mary Ann Horton, who had maintained the
vi and
termcap sources at
Berkeley, went to
AT&T Corporation and made a different version using
terminfo, which became part of
UNIX System III and
UNIX System V. Due to licensing restrictions on the latter, the BSD and AT&T versions of the library were developed independently. In addition to the termcap/terminfo improvement, other improvements were made in the AT&T version: ; video highlighting (bold, underline): The BSD version supported only
standout. ; line-drawing: The BSD version gave little support here. ; colors: This was not supported in the BSD version. AT&T curses development appears to have halted in the mid-1990s when X/Open Curses was defined. In 1995, BSD maintainer,
Keith Bostic, officially deprecated the curses library in favor of
ncurses. Development of ncurses and PDCurses continues. A version of BSD curses continues to be maintained in the
NetBSD operating system (wide character support, termcap to terminfo migration, etc.).
pcurses and PDCurses Different lines of development started by imitating the AT&T curses, from at least three implementations:
pcurses by
Pavel Curtis (started in 1982),
PDCurses (Public Domain curses) by Mark Hessling to support his editor
THE (started in 1987) as well as
Rexx/Curses, and
PC curses (version 1.4 and earlier by Björn Larsson-based inspired by Pavel Curtis' library before 1990).
ncurses ncurses (new curses) "originated as
pcurses... and was re-issued as ncurses 1.8.1 in late 1993". ncurses is the most widely known implementation of curses, and has motivated further development of other variations, such as BSD curses in the
NetBSD project. == Portability ==