blob: 52f8c29fbdefe8223d89dd3a06add98db95d710f [file] [log] [blame]
micky3879b9f5e72025-07-08 18:04:53 -04001<!--
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302 ****************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -04003 * Copyright 2018-2023,2024 Thomas E. Dickey *
4 * Copyright 1998-2016,2017 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305 * *
6 * Permission is hereby granted, free of charge, to any person obtaining a *
7 * copy of this software and associated documentation files (the *
8 * "Software"), to deal in the Software without restriction, including *
9 * without limitation the rights to use, copy, modify, merge, publish, *
10 * distribute, distribute with modifications, sublicense, and/or sell *
11 * copies of the Software, and to permit persons to whom the Software is *
12 * furnished to do so, subject to the following conditions: *
13 * *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
16 * *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
20 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
23 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
24 * *
25 * Except as contained in this notice, the name(s) of the above copyright *
26 * holders shall not be used in advertising or otherwise to promote the *
27 * sale, use or other dealings in this Software without prior written *
28 * authorization. *
29 ****************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -040030 * @Id: curs_slk.3x,v 1.71 2024/04/20 18:54:36 tom Exp @
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053031-->
Steve Kondikae271bc2015-11-15 02:50:53 +010032<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053033<HTML>
34<HEAD>
Steve Kondikae271bc2015-11-15 02:50:53 +010035<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
micky3879b9f5e72025-07-08 18:04:53 -040036<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
37<TITLE>curs_slk 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
38<link rel="author" href="mailto:bug-ncurses@gnu.org">
39
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053040</HEAD>
41<BODY>
micky3879b9f5e72025-07-08 18:04:53 -040042<H1 class="no-header">curs_slk 3x 2024-04-20 ncurses 6.5 Library calls</H1>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053043<PRE>
micky3879b9f5e72025-07-08 18:04:53 -040044<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053045
46
47
48
micky3879b9f5e72025-07-08 18:04:53 -040049</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
50 <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_label</STRONG>,
51 <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>,
52 <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>, <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>,
53 <STRONG>slk_color</STRONG>, <STRONG>extended_slk_color</STRONG> - <EM>curses</EM> soft label key routines
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053054
55
micky3879b9f5e72025-07-08 18:04:53 -040056</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053057 <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
58
micky3879b9f5e72025-07-08 18:04:53 -040059 <STRONG>int</STRONG> <STRONG>slk_init(int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
60
61 <STRONG>int</STRONG> <STRONG>slk_set(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>align</EM><STRONG>);</STRONG>
62 <STRONG>int</STRONG> <STRONG>slk_wset(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>align</EM><STRONG>);</STRONG>
63
64 <STRONG>char</STRONG> <STRONG>*slk_label(int</STRONG> <EM>labnum</EM><STRONG>);</STRONG>
65
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053066 <STRONG>int</STRONG> <STRONG>slk_refresh(void);</STRONG>
67 <STRONG>int</STRONG> <STRONG>slk_noutrefresh(void);</STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053068 <STRONG>int</STRONG> <STRONG>slk_clear(void);</STRONG>
69 <STRONG>int</STRONG> <STRONG>slk_restore(void);</STRONG>
70 <STRONG>int</STRONG> <STRONG>slk_touch(void);</STRONG>
micky3879b9f5e72025-07-08 18:04:53 -040071
72 <STRONG>int</STRONG> <STRONG>slk_attron(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
73 <STRONG>int</STRONG> <STRONG>slk_attroff(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
74 <STRONG>int</STRONG> <STRONG>slk_attrset(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
75 <STRONG>int</STRONG> <STRONG>slk_attr_on(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
76 <STRONG>int</STRONG> <STRONG>slk_attr_off(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
77 <STRONG>int</STRONG> <STRONG>slk_attr_set(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG><EM>opts</EM><STRONG>);</STRONG>
78 <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053079 <STRONG>attr_t</STRONG> <STRONG>slk_attr(void);</STRONG>
micky3879b9f5e72025-07-08 18:04:53 -040080
81 <STRONG>int</STRONG> <STRONG>slk_color(short</STRONG> <EM>pair</EM><STRONG>);</STRONG>
82 <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
83 <STRONG>int</STRONG> <STRONG>extended_slk_color(int</STRONG> <EM>pair</EM><STRONG>);</STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053084
85
micky3879b9f5e72025-07-08 18:04:53 -040086</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
87 These functions manipulate the soft function key labels that some
88 hardware terminals support. For those terminals that do not have soft
89 labels, <EM>curses</EM> takes over the bottom line of <STRONG>stdscr</STRONG>, reducing its
90 vertical size and the value of <STRONG>LINES</STRONG> by one. By default, <EM>curses</EM> uses
91 eight labels of up to eight characters each.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053092
micky3879b9f5e72025-07-08 18:04:53 -040093 <EM>ncurses</EM> furthermore supports a mode comprising twelve labels of up to
94 five characters each, following a convention associated with the IBM
95 PC/AT keyboard. <EM>ncurses</EM> simulates this mode by taking over up to two
96 lines at the bottom of the screen; it does not try to use any hardware
97 support for this mode.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053098
99
micky3879b9f5e72025-07-08 18:04:53 -0400100</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
101 <STRONG>slk_init</STRONG> must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. If <STRONG>initscr</STRONG>
102 eventually uses a line from <STRONG>stdscr</STRONG> to emulate the soft labels, then <EM>fmt</EM>
103 determines how the labels are arranged on the screen.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530104
micky3879b9f5e72025-07-08 18:04:53 -0400105 <STRONG>0</STRONG> indicates a 3-2-3 arrangement of the labels.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530106
micky3879b9f5e72025-07-08 18:04:53 -0400107 <STRONG>1</STRONG> indicates a 4-4 arrangement
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530108
micky3879b9f5e72025-07-08 18:04:53 -0400109 <STRONG>2</STRONG> indicates the PC-like 4-4-4 mode.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530110
micky3879b9f5e72025-07-08 18:04:53 -0400111 <STRONG>3</STRONG> is again the PC-like 4-4-4 mode, but in addition an index line is
112 generated, helping the user to associate each label with its
113 numbered function key. <STRONG>LINES</STRONG> and the vertical size of <STRONG>stdscr</STRONG> are
114 further reduced.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530115
116
micky3879b9f5e72025-07-08 18:04:53 -0400117</PRE><H3><a name="h3-Labels">Labels</a></H3><PRE>
118 Populate the labels with normal strings (<STRONG>slk_set</STRONG>) or wide-character
119 strings (<STRONG>slk_wset</STRONG>). Each function takes three parameters.
120
121 <EM>labnum</EM> is the label number, from <STRONG>1</STRONG> to <STRONG>8</STRONG> (12 if <EM>fmt</EM> in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or
122 <STRONG>3</STRONG>);
123
124 <EM>label</EM> is be the string to put on the label, up to eight (five if <EM>fmt</EM>
125 in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or <STRONG>3</STRONG>) characters in length. A empty string or
126 a null pointer sets up a blank label.
127
128 <EM>align</EM> is <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>, aligning <EM>label</EM> to the left, center, or right,
129 respectively, within the 8 (5) character cells housing it.
130
131 <STRONG>slk_label</STRONG> obtains the string assigned to label number <EM>labnum</EM>, with any
132 leading and trailing blanks stripped.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530133
134
micky3879b9f5e72025-07-08 18:04:53 -0400135</PRE><H3><a name="h3-Screen-Updates">Screen Updates</a></H3><PRE>
136 <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> affect the soft key label lines as
137 <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> do the <EM>curses</EM> window.
138
139 The <STRONG>slk_clear</STRONG> routine clears the soft labels from the screen.
140
141 The <STRONG>slk_restore</STRONG> routine restores the soft labels to the screen after a
142 <STRONG>slk_clear</STRONG> has been performed.
143
144 The <STRONG>slk_touch</STRONG> routine forces all the soft labels to be output the next
145 time a <STRONG>slk_noutrefresh</STRONG> is performed.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530146
147
micky3879b9f5e72025-07-08 18:04:53 -0400148</PRE><H3><a name="h3-Video-Attributes">Video Attributes</a></H3><PRE>
149 The <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, and <STRONG>slk_attr</STRONG> routines
150 correspond to <STRONG>attron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attr_get</STRONG>, respectively.
151 They have an effect only if soft labels are simulated on the bottom
152 line of the screen. The default highlight for soft key labels is
153 <STRONG>A_STANDOUT</STRONG> (as in System V <EM>curses</EM>, which does not document this fact).
154
155
156</PRE><H3><a name="h3-Colors">Colors</a></H3><PRE>
157 The <STRONG>slk_color</STRONG> routine corresponds to <STRONG>color_set</STRONG>. It has an effect only
158 if soft labels are simulated on the bottom line of the screen.
159
160 Because <STRONG>slk_color</STRONG> accepts only <EM>short</EM> (signed 16-bit integer) values,
161 this implementation provides <STRONG>extended_slk_color</STRONG>, which accepts an <EM>int</EM>
162 value of at least 32 bits.
163
164
165</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
166 Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
167 specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
168 completion.
169
170 X/Open Curses defines no error conditions.
171
172 In this implementation
173
174 <STRONG>slk_attr</STRONG>
175 returns the attribute used for the soft keys.
176
177 <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>,
178 <STRONG>slk_touch</STRONG>
179 return an error if the terminal or the softkeys were not
180 initialized.
181
182 <STRONG>slk_attrset</STRONG>
183 returns an error if the terminal or the softkeys were not
184 initialized.
185
186 <STRONG>slk_attr_set</STRONG>
187 returns an error if the terminal or the softkeys were not
188 initialized, or the color pair is outside the range
189 0..<STRONG>COLOR_PAIRS</STRONG>-1.
190
191 <STRONG>slk_color</STRONG>
192 returns an error if the terminal or the softkeys were not
193 initialized, or the color pair is outside the range
194 0..<STRONG>COLOR_PAIRS</STRONG>-1.
195
196 <STRONG>slk_init</STRONG>
197 returns an error if the format parameter is outside the range
198 0..3.
199
200 <STRONG>slk_label</STRONG>
201 returns <STRONG>NULL</STRONG> on error.
202
203 <STRONG>slk_set</STRONG>
204 returns an error if the terminal or the softkeys were not
205 initialized, or the <EM>labnum</EM> parameter is outside the range of
206 label counts, or if the format parameter is outside the range
207 0..2, or if memory for the labels cannot be allocated.
208
209
210</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
211 Most applications would use <STRONG>slk_noutrefresh</STRONG> because a <STRONG>wrefresh</STRONG> is
212 likely to follow soon.
213
214
215</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
216 X/Open Curses documents the <EM>opts</EM> argument as reserved for future use,
217 saying that it must be null. This implementation uses that parameter
218 in ABI 6 for the functions which have a color pair parameter to support
219 extended color pairs.
220
221 For functions which modify the color, e.g., <STRONG>slk_attr_set</STRONG>, if <EM>opts</EM> is
222 set it is treated as a pointer to <EM>int</EM>, and used to set the color pair
223 instead of the <EM>short</EM> pair parameter.
224
225
226</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
227 X/Open Curses, Issue 4 describes these functions, with some differences
228 from SVr4 <EM>curses</EM>:
229
230 <STRONG>o</STRONG> X/Open added functions like the SVr4 attribute-manipulation
231 functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>, and <STRONG>slk_attrset</STRONG>, but which use
232 <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> parameters (rather than <EM>chtype</EM>), along with a reserved <EM>opts</EM>
233 parameter.
234
235 Two of these new functions (unlike the SVr4 functions) have no
236 provision for color: <STRONG>slk_attr_on</STRONG> and <STRONG>slk_attr_off</STRONG>.
237
238 The third function (<STRONG>slk_attr_set</STRONG>) has a color pair parameter.
239
240 <STRONG>o</STRONG> It added <EM>const</EM> qualifiers to parameters (unnecessarily), and
241
242 <STRONG>o</STRONG> It added <STRONG>slk_color</STRONG>.
243
244 Although <STRONG>slk_start</STRONG> is declared in the <EM>curses</EM> header file, it was not
245 documented by SVr4 other than its presence in a list of libtermlib.so.1
246 symbols. Reading the source code (i.e., Illumos):
247
248 <STRONG>o</STRONG> <STRONG>slk_start</STRONG> has two parameters:
249
250 <STRONG>o</STRONG> <EM>ng</EM> (number of groups) and
251
252 <STRONG>o</STRONG> <EM>gp</EM> (group pointer).
253
254 <STRONG>o</STRONG> Soft-key groups are an array of <EM>ng</EM> integers.
255
256 <STRONG>o</STRONG> In SVr4, <STRONG>slk_init</STRONG> calls <STRONG>slk_start</STRONG> passing a null for <EM>gp</EM>. For this
257 case, <STRONG>slk_start</STRONG> uses the number of groups <EM>ng</EM> (3 for the 3-2-3
258 layout, 2 for the 4-4 layout) which <STRONG>slk_init</STRONG> provided.
259
260 If <EM>ng</EM> is neither 2 or 3, <STRONG>slk_start</STRONG> checks the terminfo <STRONG>fln</STRONG>
261 (label_format) capability, interpreting that as a comma-separated
262 list of numbers, e.g., "3,2,3" for the 3-2-3 layout.
263
264 Finally, if there is no <STRONG>fln</STRONG> capability, <STRONG>slk_start</STRONG> returns <STRONG>ERR</STRONG>.
265
266 <STRONG>o</STRONG> If <STRONG>slk_start</STRONG> is given a non-null <EM>gp</EM>, it copies the <EM>ng</EM> elements of
267 the group of soft-keys, up to 16.
268
269 If there are more than 16 elements, <STRONG>slk_start</STRONG> returns an error.
270
271 <STRONG>o</STRONG> The format codes <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init</STRONG> were added by <EM>ncurses</EM> in
272 1996. PDCurses 2.4 added this feature in 2001.
273
274 The function <STRONG>slk_attr</STRONG> was added by <EM>ncurses</EM> in 1996.
275
276 X/Open Curses does not specify a limit for the number of colors and
277 color pairs which a terminal can support. However, in its use of <EM>short</EM>
278 for the parameters, it carries over SVr4's implementation detail for
279 the compiled terminfo database, which uses signed 16-bit numbers. This
280 implementation provides extended versions of those functions which use
281 <EM>int</EM> parameters, allowing applications to use larger color- and pair-
282 numbers.
283
284
285</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
286 SVr3 introduced these functions:
287 <STRONG>slk_clear</STRONG>
288 <STRONG>slk_init</STRONG>
289 <STRONG>slk_label</STRONG>
290 <STRONG>slk_noutrefresh</STRONG>
291 <STRONG>slk_refresh</STRONG>
292 <STRONG>slk_restore</STRONG>
293 <STRONG>slk_set</STRONG>
294 <STRONG>slk_touch</STRONG>
295
296 SVr4 added these functions:
297 <STRONG>slk_attroff</STRONG>
298 <STRONG>slk_attron</STRONG>
299 <STRONG>slk_attrset</STRONG>
300 <STRONG>slk_start</STRONG>
301
302 X/Open Curses added these:
303 <STRONG>slk_attr_off</STRONG>
304 <STRONG>slk_attr_on</STRONG>
305 <STRONG>slk_attr_set</STRONG>
306 <STRONG>slk_color</STRONG>
307 <STRONG>slk_wset</STRONG>
308
309
310</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
311 <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
312 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530313
314
315
micky3879b9f5e72025-07-08 18:04:53 -0400316ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530317</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100318<div class="nav">
319<ul>
320<li><a href="#h2-NAME">NAME</a></li>
321<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400322<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
323<ul>
324<li><a href="#h3-Initialization">Initialization</a></li>
325<li><a href="#h3-Labels">Labels</a></li>
326<li><a href="#h3-Screen-Updates">Screen Updates</a></li>
327<li><a href="#h3-Video-Attributes">Video Attributes</a></li>
328<li><a href="#h3-Colors">Colors</a></li>
329</ul>
330</li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100331<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
332<li><a href="#h2-NOTES">NOTES</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400333<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100334<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400335<li><a href="#h2-HISTORY">HISTORY</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100336<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
337</ul>
338</div>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530339</BODY>
340</HTML>