ncurses 6.1 - patch 20190824
[ncurses.git] / doc / ncurses-intro.doc
index d9f978f1901a4b27bd319f8f01fc2be7058f342c..4e752ed0fc54816f5e0084db1b3fe46405aafd9b 100644 (file)
 A Brief History of Curses
 
    Historically, the first ancestor of curses was the routines written to
-   provide   screen-handling   for   the   game  rogue;  these  used  the
-   already-existing  termcap  database  facility  for describing terminal
+   provide  screen-handling  for  the  vi  editor; these used the termcap
+   database  facility  (both  released  in  3BSD) for describing terminal
    capabilities. These routines were abstracted into a documented library
-   and first released with the early BSD UNIX versions.
-
-   System  III UNIX from Bell Labs featured a rewritten and much-improved
-   curses  library.  It introduced the terminfo format. Terminfo is based
-   on  Berkeley's termcap database, but contains a number of improvements
-   and  extensions.  Parameterized  capabilities strings were introduced,
-   making  it  possible to describe multiple video attributes, and colors
-   and  to  handle far more unusual terminals than possible with termcap.
-   In  the  later  AT&T  System  V  releases,  curses evolved to use more
-   facilities and offer more capabilities, going far beyond BSD curses in
-   power and flexibility.
+   and  first released with the early BSD UNIX versions. All of this work
+   was  done  by  students  at  the  University  of  California (Berkeley
+   campus).  The  curses  library  was  first published in 4.0BSD, a year
+   after 3BSD (i.e., late 1980).
+
+   After  graduation,  one  of  those  students went to work at AT&T Bell
+   Labs,  and  made  an  improved  termcap library called terminfo (i.e.,
+   "libterm"),  and  adapted  the  curses  library  to use this. That was
+   subsequently  released in System V Release 2 (early 1984). Thereafter,
+   other  developers  added  to  the  curses  and terminfo libraries. For
+   instance,  a  student at Cornell University wrote an improved terminfo
+   library  as well as a tool (tic) to compile the terminal descriptions.
+   As  a  general  rule,  AT&T  did  not  identify  the developers in the
+   source-code  or  documentation;  the  tic and infocmp programs are the
+   exceptions.
+
+   System  V  Release  3  (System  III  UNIX)  from  Bell Labs featured a
+   rewritten and much-improved curses library, along with the tic program
+   (late 1986).
+
+   To  recap,  terminfo  is  based  on  Berkeley's  termcap database, but
+   contains  a  number  of  improvements  and  extensions.  Parameterized
+   capabilities  strings  were introduced, making it possible to describe
+   multiple  video  attributes, and colors and to handle far more unusual
+   terminals  than  possible  with  termcap.  In  the later AT&T System V
+   releases,  curses  evolved  to  use  more  facilities  and  offer more
+   capabilities, going far beyond BSD curses in power and flexibility.
 
 Scope of This Document
 
@@ -2395,7 +2411,6 @@ typedef int     (*HOOK)();       /* pointer to function returning int */
 FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
                          HOOK c_validate) /* character validator */
 
-
 int free_fieldtype(FIELDTYPE *ftype);     /* type to free */
 
    At least one of the arguments of new_fieldtype() must be non-NULL. The