Adam, thank you for finding this and setting the record straight.
AT&T management had nothing to do with it. I self-censored because
AT&T's policy was that anything I wrote belonged to my employer.
Pavel graciously offered to clone my work, and I slipped him the spec
and the algorithm for the new improved curses. His version was FOSS and
became the de facto standard everywhere except AT&T, where it wound up
in System V Release 4 / Solaris.
Thanks,
/Mary Ann Horton/ (she/her/ma'am)
Award Winning Author
Clem Cole<clemc(a)ccc.com> writes:
Pavel (with coaching from a few of us, including
me], wrote a new
implementation of terminfo. When he was added it, he combined a
rewrite of curses.
From the utzoo Usenet archive...
--start--
From: utzoo!decvax!harpo!floyd!vax135!cornell!pavel
Newsgroups: net.general
Title: New Curses/Terminfo Package
Article-I.D.: cornell.3348
Posted: Sat Jul 10 15:10:14 1982
Received: Sun Jul 11 03:55:13 1982
At this past week's USENIX meeting, Mark Horton announced the completion
of a replacement database/interface for the Berkeley 'termcap' setup. The
new version is called 'terminfo' and has several advantages over termcap:
- The database is compiled and therefore start-up time for
programs using the package is considerably reduced, even
faster than reading a single-entry termcap database.
- The database is more human-readable and flexible.
- Many more terminals can be supported due to the addition
of several new capabilities, generalised parameter
mechanisms (enabling the full use of, for example, the ANSI
cursor-forward capability by allowing you to say 'move forward
35 spaces' as opposed to 'move forward' 35 times), a fully
general yet efficient arithmetic mechanism which should allow
the use of \any/ bizarre cursor-addressing scheme which can
be computed, etc.
- A \far/ better set of routines for accessing the database,
requiring, for example, only a single call to read in an
entire entry, making all of the terminal's capabilities fully
available to the calling program. No more need for 'tgetent',
'tgetstr', etc.
Conversion of existing programs from termcap to terminfo is very easy and
usually consists mostly of throwing out all of the garbage needed to read
and store a termcap entry.
As a companion to the change to terminfo, Mark has also completed work on
a re-vamped version of the Curses screen-handling library package. The new
version has many, many advantages over the previous version, some of which
are listed below:
- New curses can use insert/delete line/character capabilities
in terminals which have them, considerably speeding up many
applications
- It is possible to use the new curses on more than one type of
terminal at once
- All of the video attributes of a terminal (e.g. reverse video,
boldface, blinking, etc.) can be used, in tandem if possible
- New curses handles terminals like the Televideos with the
so-called 'magic cookie' glitch which leaves markers on the
screen for each change of video attributes
- The arrow and function keys of terminals can be input just as
though they were single characters, even on terminals which use
multi-character sequences for these functions. The new curses
does all necessary interpretation, passing back to the program
only a defined constant telling which key was pressed.
- There is a user-accessable scrolling region
- The use of shell escapes and the csh ^Z job control feature is
supported more fully
- On systems which can support the notion, updates of the screen
will abort if a character is typed at the keyboard, thus allowing
the application to possibly avoid useless output
- It should now be possible for most programs to be written very
portably to run on most versions of UNIX, including System III,
Berkeley UNIX, V7, Bell Labs internal UNIX, etc. This portability
extends to the use of most terminal modes, such as raw mode,
echoing, etc.
Now for the bad news. Mark, being an employee of Bell Labs, cannot release
any of his code. Estimates currently run as high as 18 months for a Bell
release. Even then, nothing could be guaranteed as to its price. As a result,
I have decided to do a public-domain implementation of both terminfo and the
new curses. They will be compatible with Mark's versions. I have arranged
for the library/database to be distributed with the next Berkeley Software
Distribution, 4.2BSD, in December of this year. It will also be made available
for free to any requestor. I agree with Mark when he says that terminfo is
clearly superior to termcap and deserves to be made a new and lasting standard.
I expect to be able to begin recruiting test sites for both curses and terminfo
by the end of September.
If you have any questions, comments or suggestions, please send them to me, not
the network.
Pavel Curtis
{decvax,allegra,vax135,harpo,...}!cornell!pavel
Pavel.Cornell@Udel-Relay
--end--