+ When <STRONG>keypad</STRONG> is first enabled, ncurses loads the key-defi-
+ nitions for the current terminal description. If the ter-
+ minal description includes extended string capabilities,
+ e.g., from using the <STRONG>-x</STRONG> option of tic, then ncurses also
+ defines keys for the capabilities whose names begin with
+ "k". The corresponding keycodes are generated and (de-
+ pending on previous loads of terminal descriptions) may
+ differ from one execution of a program to the next. The
+ generated keycodes are recognized by the <STRONG>keyname</STRONG> function
+ (which will then return a name beginning with "k" denoting
+ the terminfo capability name rather than "K", used for
+ curses key-names). On the other hand, an application can
+ use <STRONG>define_key</STRONG> to establish a specific keycode for a given
+ string. This makes it possible for an application to
+ check for an extended capability's presence with <EM>tigetstr</EM>,
+ and reassign the keycode to match its own needs.
+
+ Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the def-
+ inition of any particular string capability. Higher-level
+ applications which use the curses <STRONG>wgetch</STRONG> and similar func-
+ tions to return keycodes rely upon the order in which the
+ strings are loaded. If more than one key definition has
+ the same string value, then <STRONG>wgetch</STRONG> can return only one
+ keycode. Most curses implementations (including ncurses)
+ load key definitions in the order defined by the array of
+ string capability names. The last key to be loaded deter-
+ mines the keycode which will be returned. In ncurses, you
+ may also have extended capabilities interpreted as key
+ definitions. These are loaded after the predefined keys,
+ and if a capability's value is the same as a previously-
+ loaded key definition, the later definition is the one
+ used.
+