-</PRE>
-<H3><a name="h3-unctrl_wunctrl">unctrl/wunctrl</a></H3><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
- null pointer if unsuccessful, but does not define any er-
- ror conditions. This implementation checks for three cas-
- es:
-
- <STRONG>o</STRONG> the parameter is a 7-bit US-ASCII code. This is the
- case that X/Open Curses documented.
-
- <STRONG>o</STRONG> the parameter is in the range 128-159, i.e., a C1 con-
- trol code. If <STRONG>use_legacy_coding</STRONG> has been called with
- a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG> 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 controls.
-
- X/Open Curses does not document whether <STRONG>unctrl</STRONG> can be
- called before initializing curses. This implementa-
- tion permits that, and returns the "~@", etc., values
- in that case.
-
- <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unctrl</STRONG>
- returns a null pointer.
-
- The strings returned by <STRONG>unctrl</STRONG> 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 <STRONG>use_legacy_coding</STRONG> func-
- tion allows the caller to change the output of <STRONG>unctrl</STRONG>.
-
- Likewise, the <STRONG>meta</STRONG> function allows the caller to change
- the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use
- the `M-' prefix for "meta" keys (codes in the range 128 to
- 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only after
- curses is initialized. X/Open Curses does not document
- the treatment of codes 128 to 159. When treating them as
- "meta" keys (or if <STRONG>keyname</STRONG> is called before initializing
- curses), this implementation returns strings "M-^@",
- "M-^A", etc.