Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!harvard!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.unix-wizards,net.unix,net.info-terms Subject: Re: terminfo, termcap, etc Message-ID: <1624@umcp-cs.UUCP> Date: Wed, 21-May-86 02:13:27 EDT Article-I.D.: umcp-cs.1624 Posted: Wed May 21 02:13:27 1986 Date-Received: Sat, 24-May-86 02:14:58 EDT References: <1135@bunker.UUCP> <155@molihp.UUCP> <2774@pegasus.UUCP> <299@enmasse.UUCP> <162@njitcccc.UUCP> Reply-To: chris@maryland.UUCP (Chris Torek) Distribution: net Organization: University of Maryland, Dept. of Computer Sci. Lines: 83 Xref: linus net.unix-wizards:15103 net.unix:7244 net.info-terms:513 In article <162@njitcccc.UUCP> ken@njitcccc.UUCP (Kenneth Ng) writes: >In article <299@enmasse.UUCP>, keith@enmasse.UUCP (Keith Crews) writes: >>While we are on the subject of terminfo, does anyone know of a >>documented list of terminfo entries that are sufficient to allow >>curses to work properly, if not optimally, in all cases? [KC] >I have found that the minimal requirements are (I think): col >and row numbers, clear screen, cursor addressing, and indexing. >By indexing Un*x means the control sequence to scroll the screen >up a line. [KN] Actually, at least under 4BSD, vi requires: 1) cursor motion, including EITHER: a) up and left and absolute, OR b) up, down, left, and right 2) clear screen 3) screen size (`co#' and `li#') 4BSD vi assumes a line feed from the last line will force a scroll. I once worked with a terminal emulator for which this was not true; it was rather painful. (Adding `ns', `terminal is a CRT but cannot scroll', makes vi use open mode: workable but unpleasant.) 4BSD curses may have a different set of minimums; at any rate I remember *something* needed a clear-to-end-of-line as well. Also, some attributes may force others to be required. For example, `db' implies a need for `cd=', though vi will iterate `ce=' if it must. (It may even use blanks if necessary; I have never tried it.) Moreover, some attributes (e.g., `am') will cause what look like random trouble if they are specified incorrectly. If you want instead to know which capabilites are *examined*, well, again, that depends on the program. My own termcap Emacs screen driver has similar (though not quite identical) requirements as vi; but it currently *uses* all of these: Strings (`cl='): al bc cd ce cl ch cm cr cv dc dl dm ds ed ei ho ic im ip pc ll nd nl se so ta te ti ue up us vb ve vs Numerics (`co#'): co li sg tw ug Flags (`am'): MT am bs db hz in km mi ms nc nn rn ul xn xs xt (Alas, it is missing the new AL, DL, etc. entries; nor will it use `cs='. `rn', `nn', `tw#', and `ds=' are locals.) I just found vi's strings and flags too: al bc bt cd ce cl cm cr cs dc dl dm do ed ei k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 ho ic im ip kd ke kh kl kr ks ku ll nd nl pc rc sc se sf so sr ta te ti up vb vs ve AL DL UP DO LE RI and am bs da db eo hc hz in mi nc ns os ul xb xn xt xx respectively. >But of course the manual does not say what the minimal requirements >are, I guess they just assume you can read minds. I seem to recall seeing a list of requirements somewhere. Perhaps it was in a bit of source code. The real problem, though, is that the `minimal' set depends upon the program, and could change between system releases; and writing a complete description is always sufficient, if time-consuming. [And a bit off the beaten track---in fact in .signature territory:] >Vulcan jealousy: "I fail to see the logic in prefering Stan over me" Actually, it was `Stonn'; I am not sure about the rest of the quote. But I do recall this (probably inexactly): `You may find that *having* something is not quite so pleasing a thing as *wanting* it.' -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1516) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu