X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_util.3x.html;h=8181efa432f386223c3e02ac29ab60a833f53ba9;hp=2557f86df3cdd074a8ab6052e0adce7e146aed84;hb=9776951416d7fb862b9dca1f4c9f8031a5c9059b;hpb=a8987e73ec254703634802b4f7ee30d3a485524d diff --git a/doc/html/man/curs_util.3x.html b/doc/html/man/curs_util.3x.html index 2557f86d..8181efa4 100644 --- a/doc/html/man/curs_util.3x.html +++ b/doc/html/man/curs_util.3x.html @@ -1,7 +1,7 @@
@@ -40,7 +40,7 @@-curs_util(3x) curs_util(3x) +curs_util(3x) curs_util(3x) @@ -48,8 +48,8 @@
delay_output, filter, flushinp, getwin, key_name, keyname, - putwin, unctrl, use_env, wunctrl - miscellaneous curses - utility routines + nofilter, putwin, unctrl, use_env, wunctrl - miscellaneous + curses utility routines@@ -57,10 +57,11 @@ #include <curses.h> char *unctrl(chtype c); - char *wunctrl(cchar_t *c); + wchar_t *wunctrl(cchar_t *c); char *keyname(int c); char *key_name(wchar_t w); void filter(void); + void nofilter(void); void use_env(bool f); int putwin(WINDOW *win, FILE *filep); WINDOW *getwin(FILE *filep); @@ -71,21 +72,43 @@
The unctrl routine returns a character string which is a - printable representation of the character c, ignoring - attributes. Control characters are displayed in the ^X - notation. Printing characters are displayed as is. The + printable representation of the character c, ignoring at- + tributes. Control characters are displayed in the ^X no- + tation. Printing characters are displayed as is. The corresponding wunctrl returns a printable representation - of a wide-character. + of a wide character. The keyname routine returns a character string correspond- - ing to the key c. Control characters are displayed in the - ^X notation. Values above 128 are either meta characters, - shown in the M-X notation, or the names of function keys, - or null. The corresponding key_name returns a character - string corresponding to the wide-character value w. The - two functions do not return the same set of strings; the - latter returns null where the former would display a meta - character. + ing to the key c: + + o Printable characters are displayed as themselves, + e.g., a one-character string containing the key. + + o Control characters are displayed in the ^X nota- + tion. + + o DEL (character 127) is displayed as ^?. + + o Values above 128 are either meta characters (if the + screen has not been initialized, or if meta has + been called with a TRUE parameter), shown in the + M-X notation, or are displayed as themselves. In + the latter case, the values may not be printable; + this follows the X/Open specification. + + o Values above 256 may be the names of the names of + function keys. + + o Otherwise (if there is no corresponding name) the + function returns null, to denote an error. X/Open + also lists an "UNKNOWN KEY" return value, which + some implementations return rather than null. + + The corresponding key_name returns a character string cor- + responding to the wide-character value w. The two func- + tions do not return the same set of strings; the latter + returns null where the former would display a meta charac- + ter. The filter routine, if used, must be called before initscr or newterm are called. The effect is that, during those @@ -93,14 +116,22 @@ cud, cud1, cuu1, cuu, vpa are disabled; and the home string is set to the value of cr. + The nofilter routine cancels the effect of a preceding + filter call. That allows the caller to initialize a + screen on a different device, using a different value of + $TERM. The limitation arises because the filter routine + modifies the in-memory copy of the terminal information. + The use_env routine, if used, is called before initscr or newterm are called. When called with FALSE as an argu- ment, the values of lines and columns specified in the terminfo database will be used, even if environment vari- ables LINES and COLUMNS (used by default) are set, or if - curses is running in a window (in which case default - behavior would be to use the window size if LINES and - COLUMNS are not set). + curses is running in a window (in which case default be- + havior would be to use the window size if LINES and + COLUMNS are not set). Note that setting LINES or COLUMNS + overrides the corresponding size which may be obtained + from the operating system. The putwin routine writes all data associated with window win into the file to which filep points. This information @@ -124,36 +155,107 @@
- Except for flushinp, routines that return an integer - return ERR upon failure and OK (SVr4 specifies only "an - integer value other than ERR") upon successful completion. - - flushinp always returns OK. + Except for flushinp, routines that return an integer re- + turn ERR upon failure and OK (SVr4 specifies only "an in- + teger value other than ERR") upon successful completion. Routines that return pointers return NULL on error. + X/Open does not define any error conditions. In this im- + plementation + + flushinp + returns an error if the terminal was not initial- + ized. + + meta returns an error if the terminal was not initial- + ized. + + putwin + returns an error if the associated fwrite calls + return an error. +
- The XSI Curses standard, Issue 4 describes these func- - tions. It states that unctrl and wunctrl will return a - null pointer if unsuccessful, but does not define any - error conditions. + The XSI Curses standard, Issue 4 describes these func- + tions. It states that unctrl and wunctrl will return a + null pointer if unsuccessful, but does not define any er- + ror conditions. This implementation checks for three cas- + es: + + o the parameter is a 7-bit US-ASCII code. This is + the case that X/Open Curses documented. + + o the parameter is in the range 128-159, i.e., a C1 + control code. If use_legacy_coding has been called + with a 2 parameter, unctrl returns the parameter, + i.e., a one-character string with the parameter as + the first character. Otherwise, it returns ``~@'', + ``~A'', etc., analogous to ``^@'', ``^A'', C0 con- + trols. + + X/Open Curses does not document whether unctrl can + be called before initializing curses. This imple- + mentation permits that, and returns the ``~@'', + etc., values in that case. + + o parameter values outside the 0 to 255 range. unc- + trl returns a null pointer. The SVr4 documentation describes the action of filter only - in the vaguest terms. The description here is adapted - from the XSI Curses standard (which erroneously fails to + in the vaguest terms. The description here is adapted + from the XSI Curses standard (which erroneously fails to describe the disabling of cuu). + The strings returned by unctrl in this implementation are + determined at compile time, showing C1 controls from the + upper-128 codes with a `~' prefix rather than `^'. Other + implementations have different conventions. For example, + they may show both sets of control characters with `^', + and strip the parameter to 7 bits. Or they may ignore C1 + controls and treat all of the upper-128 codes as print- + able. This implementation uses 8 bits but does not modify + the string to reflect locale. The use_legacy_coding func- + tion allows the caller to change the output of unctrl. + + Likewise, the meta function allows the caller to change + the output of keyname, i.e., it determines whether to use + the `M-' prefix for ``meta'' keys (codes in the range 128 + to 255). Both use_legacy_coding and meta succeed only af- + ter curses is initialized. X/Open Curses does not docu- + ment the treatment of codes 128 to 159. When treating + them as ``meta'' keys (or if keyname is called before ini- + tializing curses), this implementation returns strings + ``M-^@'', ``M-^A'', etc. + + The keyname function may return the names of user-defined + string capabilities which are defined in the terminfo en- + try via the -x option of tic. This implementation auto- + matically assigns at run-time keycodes to user-defined + strings which begin with "k". The keycodes start at + KEY_MAX, but are not guaranteed to be the same value for + different runs because user-defined codes are merged from + all terminal descriptions which have been loaded. The + use_extended_names function controls whether this data is + loaded when the terminal description is read by the li- + brary. + + The nofilter routine is specific to ncurses. It was not + supported on Version 7, BSD or System V implementations. + It is recommended that any code depending on ncurses ex- + tensions be conditioned using NCURSES_VERSION. +
- curses(3x), curs_initscr(3x), curs_kernel(3x), - curs_scr_dump(3x). + legacy_coding(3x), curses(3x), curs_initscr(3x), curs_ker- + nel(3x), curs_scr_dump(3x), curs_variables(3x), lega- + cy_coding(3x). - curs_util(3x) + curs_util(3x)