1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
3 ****************************************************************************
4 * Copyright (c) 2010,2013 Free Software Foundation, Inc. *
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: *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
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. *
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 *
29 ****************************************************************************
30 * @Id: curs_sp_funcs.3x,v 1.6 2013/06/22 17:53:59 tom Exp @
31 * ***************************************************************************
32 * ***************************************************************************
33 * ***************************************************************************
37 <TITLE>curs_sp_funcs 3x</TITLE>
38 <link rev=made href="mailto:bug-ncurses@gnu.org">
39 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
42 <H1>curs_sp_funcs 3x</H1>
45 <!-- Manpage converted by man2html 3.0.1 -->
46 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
53 new_prescr - <STRONG>curses</STRONG> screen-pointer extension
57 <H2>SYNOPSIS</H2><PRE>
58 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
60 <STRONG>int</STRONG> <STRONG>assume_default_colors_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
61 <STRONG>int</STRONG> <STRONG>baudrate_sp(SCREEN*);</STRONG>
62 <STRONG>int</STRONG> <STRONG>beep_sp(SCREEN*);</STRONG>
63 <STRONG>bool</STRONG> <STRONG>can_change_color_sp(SCREEN*);</STRONG>
64 <STRONG>int</STRONG> <STRONG>cbreak_sp(SCREEN*);</STRONG>
65 <STRONG>int</STRONG> <STRONG>color_content_sp(SCREEN*,</STRONG> <STRONG>short,</STRONG> <STRONG>short*,</STRONG> <STRONG>short*,</STRONG> <STRONG>short*);</STRONG>
66 <STRONG>int</STRONG> <STRONG>curs_set_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
67 <STRONG>int</STRONG> <STRONG>define_key_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>int);</STRONG>
68 <STRONG>int</STRONG> <STRONG>def_prog_mode_sp(SCREEN*);</STRONG>
69 <STRONG>int</STRONG> <STRONG>def_shell_mode_sp(SCREEN*);</STRONG>
70 <STRONG>int</STRONG> <STRONG>delay_output_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
71 <STRONG>int</STRONG> <STRONG>doupdate_sp(SCREEN*);</STRONG>
72 <STRONG>int</STRONG> <STRONG>echo_sp(SCREEN*);</STRONG>
73 <STRONG>int</STRONG> <STRONG>endwin_sp(SCREEN*);</STRONG>
74 <STRONG>int</STRONG> <STRONG>erasechar_sp(SCREEN*);</STRONG>
75 <STRONG>int</STRONG> <STRONG>filter_sp(SCREEN*);</STRONG>
76 <STRONG>int</STRONG> <STRONG>flash_sp(SCREEN*);</STRONG>
77 <STRONG>int</STRONG> <STRONG>flushinp_sp(SCREEN*);</STRONG>
78 <STRONG>int</STRONG> <STRONG>get_escdelay_sp(SCREEN*);</STRONG>
79 <STRONG>int</STRONG> <STRONG>getmouse_sp(SCREEN*,</STRONG> <STRONG>MEVENT*);</STRONG>
80 <STRONG>WINDOW*</STRONG> <STRONG>getwin_sp(SCREEN*,</STRONG> <STRONG>FILE*);</STRONG>
81 <STRONG>int</STRONG> <STRONG>halfdelay_sp(SCREEN*);</STRONG>
82 <STRONG>bool</STRONG> <STRONG>has_colors_sp(SCREEN*);</STRONG>
83 <STRONG>bool</STRONG> <STRONG>has_ic_sp(SCREEN*);</STRONG>
84 <STRONG>bool</STRONG> <STRONG>has_il_sp(SCREEN*);</STRONG>
85 <STRONG>int</STRONG> <STRONG>has_key_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
86 <STRONG>bool</STRONG> <STRONG>has_mouse_sp(SCREEN*);</STRONG>
87 <STRONG>int</STRONG> <STRONG>init_color_sp(SCREEN*,</STRONG> <STRONG>short,</STRONG> <STRONG>short,</STRONG> <STRONG>short,</STRONG> <STRONG>short);</STRONG>
88 <STRONG>int</STRONG> <STRONG>init_pair_sp(SCREEN*,</STRONG> <STRONG>short,</STRONG> <STRONG>short,</STRONG> <STRONG>short);</STRONG>
89 <STRONG>int</STRONG> <STRONG>intrflush_sp(SCREEN*,</STRONG> <STRONG>WINDOW*,</STRONG> <STRONG>bool);</STRONG>
90 <STRONG>bool</STRONG> <STRONG>isendwin_sp(SCREEN*);</STRONG>
91 <STRONG>bool</STRONG> <STRONG>is_term_resized_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
92 <STRONG>char*</STRONG> <STRONG>keybound_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
93 <STRONG>int</STRONG> <STRONG>key_defined_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
94 <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keyname_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
95 <STRONG>int</STRONG> <STRONG>keyok_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>bool);</STRONG>
96 <STRONG>char</STRONG> <STRONG>killchar_sp(SCREEN*);</STRONG>
97 <STRONG>int</STRONG> <STRONG>mcprint_sp(SCREEN*,</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>int);</STRONG>
98 <STRONG>int</STRONG> <STRONG>mouseinterval_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
99 <STRONG>mmask_t</STRONG> <STRONG>mousemask_sp(SCREEN*,</STRONG> <STRONG>mmask_t,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*);</STRONG>
100 <STRONG>int</STRONG> <STRONG>mvcur_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
101 <STRONG>int</STRONG> <STRONG>napms_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
102 <STRONG>WINDOW*</STRONG> <STRONG>newpad_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
103 <STRONG>SCREEN*</STRONG> <STRONG>new_prescr(void);</STRONG>
104 <STRONG>SCREEN*</STRONG> <STRONG>newterm_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>FILE</STRONG> <STRONG>*,</STRONG> <STRONG>FILE</STRONG> <STRONG>*);</STRONG>
105 <STRONG>WINDOW*</STRONG> <STRONG>newwin_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
106 <STRONG>int</STRONG> <STRONG>nl_sp(SCREEN*);</STRONG>
107 <STRONG>int</STRONG> <STRONG>nocbreak_sp(SCREEN*);</STRONG>
108 <STRONG>int</STRONG> <STRONG>noecho_sp(SCREEN*);</STRONG>
109 <STRONG>int</STRONG> <STRONG>nofilter_sp(SCREEN*);</STRONG>
110 <STRONG>int</STRONG> <STRONG>nonl_sp(SCREEN*);</STRONG>
111 <STRONG>void</STRONG> <STRONG>noqiflush_sp(SCREEN*);</STRONG>
112 <STRONG>int</STRONG> <STRONG>noraw_sp(SCREEN*);</STRONG>
113 <STRONG>int</STRONG> <STRONG>pair_content_sp(SCREEN*,</STRONG> <STRONG>short,</STRONG> <STRONG>short*,</STRONG> <STRONG>short*);</STRONG>
114 <STRONG>void</STRONG> <STRONG>qiflush_sp(SCREEN*);</STRONG>
115 <STRONG>int</STRONG> <STRONG>raw_sp(SCREEN*);</STRONG>
116 <STRONG>int</STRONG> <STRONG>reset_prog_mode_sp(SCREEN*);</STRONG>
117 <STRONG>int</STRONG> <STRONG>reset_shell_mode_sp(SCREEN*);</STRONG>
118 <STRONG>int</STRONG> <STRONG>resetty_sp(SCREEN*);</STRONG>
119 <STRONG>int</STRONG> <STRONG>resize_term_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
120 <STRONG>int</STRONG> <STRONG>resizeterm_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int);</STRONG>
121 <STRONG>int</STRONG> <STRONG>restartterm_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char*,</STRONG> <STRONG>int,</STRONG> <STRONG>int</STRONG> <STRONG>*);</STRONG>
122 <STRONG>int</STRONG> <STRONG>ripoffline_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>int</STRONG> <STRONG>(*)(WINDOW*,</STRONG> <STRONG>int));</STRONG>
123 <STRONG>int</STRONG> <STRONG>savetty_sp(SCREEN*);</STRONG>
124 <STRONG>int</STRONG> <STRONG>scr_init_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
125 <STRONG>int</STRONG> <STRONG>scr_restore_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
126 <STRONG>int</STRONG> <STRONG>scr_set_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
127 <STRONG>TERMINAL*</STRONG> <STRONG>set_curterm_sp(SCREEN*,</STRONG> <STRONG>TERMINAL*);</STRONG>
128 <STRONG>int</STRONG> <STRONG>set_escdelay_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
129 <STRONG>int</STRONG> <STRONG>set_tabsize_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
130 <STRONG>int</STRONG> <STRONG>slk_attroff_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG>
131 <STRONG>int</STRONG> <STRONG>slk_attron_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG>
132 <STRONG>int</STRONG> <STRONG>slk_attr_set_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>attr_t,</STRONG> <STRONG>short,</STRONG> <STRONG>void*);</STRONG>
133 <STRONG>int</STRONG> <STRONG>slk_attrset_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG>
134 <STRONG>int</STRONG> <STRONG>slk_attr_sp(SCREEN*);</STRONG>
135 <STRONG>int</STRONG> <STRONG>slk_clear_sp(SCREEN*);</STRONG>
136 <STRONG>int</STRONG> <STRONG>slk_color_sp(SCREEN*,</STRONG> <STRONG>short);</STRONG>
137 <STRONG>int</STRONG> <STRONG>slk_init_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
138 <STRONG>int</STRONG> <STRONG>slk_label_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
139 <STRONG>int</STRONG> <STRONG>slk_noutrefresh_sp(SCREEN*);</STRONG>
140 <STRONG>int</STRONG> <STRONG>slk_refresh_sp(SCREEN*);</STRONG>
141 <STRONG>int</STRONG> <STRONG>slk_restore_sp(SCREEN*);</STRONG>
142 <STRONG>int</STRONG> <STRONG>slk_set_sp(SCREEN*,</STRONG> <STRONG>int,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>int);</STRONG>
143 <STRONG>int</STRONG> <STRONG>slk_touch_sp(SCREEN*);</STRONG>
144 <STRONG>int</STRONG> <STRONG>start_color_sp(SCREEN*);</STRONG>
145 <STRONG>attr_t</STRONG> <STRONG>term_attrs_sp(SCREEN*);</STRONG>
146 <STRONG>chtype</STRONG> <STRONG>termattrs_sp(SCREEN*);</STRONG>
147 <STRONG>char*</STRONG> <STRONG>termname_sp(SCREEN*);</STRONG>
148 <STRONG>int</STRONG> <STRONG>typeahead_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
149 <STRONG>NCURSES_CONST</STRONG> <STRONG>char*</STRONG> <STRONG>unctrl_sp(SCREEN*,</STRONG> <STRONG>chtype);</STRONG>
150 <STRONG>int</STRONG> <STRONG>ungetch_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
151 <STRONG>int</STRONG> <STRONG>ungetmouse_sp(SCREEN*,MEVENT</STRONG> <STRONG>*);</STRONG>
152 <STRONG>int</STRONG> <STRONG>unget_wch_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t);</STRONG>
153 <STRONG>int</STRONG> <STRONG>use_default_colors_sp(SCREEN*);</STRONG>
154 <STRONG>void</STRONG> <STRONG>use_env_sp(SCREEN*,</STRONG> <STRONG>bool);</STRONG>
155 <STRONG>int</STRONG> <STRONG>use_legacy_coding_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
156 <STRONG>int</STRONG> <STRONG>vid_attr_sp(SCREEN*,</STRONG> <STRONG>attr_t,</STRONG> <STRONG>short,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
157 <STRONG>int</STRONG> <STRONG>vidattr_sp(SCREEN*,</STRONG> <STRONG>chtype);</STRONG>
158 <STRONG>int</STRONG> <STRONG>vid_puts_sp(SCREEN*,</STRONG> <STRONG>attr_t,</STRONG> <STRONG>short,</STRONG> <STRONG>void</STRONG> <STRONG>*,</STRONG> <STRONG>NCURSES_SP_OUTC);</STRONG>
159 <STRONG>int</STRONG> <STRONG>vidputs_sp(SCREEN*,</STRONG> <STRONG>chtype,</STRONG> <STRONG>NCURSES_SP_OUTC);</STRONG>
160 <STRONG>wchar_t*</STRONG> <STRONG>wunctrl_sp(SCREEN*,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*);</STRONG>
162 <STRONG>#include</STRONG> <STRONG><form.h></STRONG>
164 <STRONG>int</STRONG> <STRONG>new_form_sp(SCREEN*,</STRONG> <STRONG>FIELD</STRONG> <STRONG>**);</STRONG>
166 <STRONG>#include</STRONG> <STRONG><menu.h></STRONG>
168 <STRONG>int</STRONG> <STRONG>new_menu_sp(SCREEN*,</STRONG> <STRONG>ITEM</STRONG> <STRONG>**);</STRONG>
170 <STRONG>#include</STRONG> <STRONG><panel.h></STRONG>
172 <STRONG>int</STRONG> <STRONG>ceiling_panel(SCREEN*);</STRONG>
173 <STRONG>PANEL*</STRONG> <STRONG>ground_panel(SCREEN*);</STRONG>
174 <STRONG>int</STRONG> <STRONG>update_panels_sp(SCREEN*);</STRONG>
176 <STRONG>#include</STRONG> <STRONG><term.h></STRONG>
178 <STRONG>int</STRONG> <STRONG>del_curterm_sp(SCREEN*,</STRONG> <STRONG>TERMINAL</STRONG> <STRONG>*);</STRONG>
179 <STRONG>int</STRONG> <STRONG>putp_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
180 <STRONG>int</STRONG> <STRONG>tgetflag_sp(SCREEN*,</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
181 <STRONG>int</STRONG> <STRONG>tgetent_sp(SCREEN*,</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
182 <STRONG>int</STRONG> <STRONG>tgetnum_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
183 <STRONG>char*</STRONG> <STRONG>tgetstr_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>char</STRONG> <STRONG>**);</STRONG>
184 <STRONG>int</STRONG> <STRONG>tigetflag_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
185 <STRONG>int</STRONG> <STRONG>tigetnum_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
186 <STRONG>char*</STRONG> <STRONG>tigetstr_sp(SCREEN*,</STRONG> <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*);</STRONG>
187 <STRONG>int</STRONG> <STRONG>tputs_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*,</STRONG> <STRONG>int,</STRONG> <STRONG>NCURSES_SP_OUTC);</STRONG>
191 <H2>DESCRIPTION</H2><PRE>
192 This implementation can be configured to provide a set of
193 functions which improve the ability to manage multiple
194 screens. This feature can be added to any of the configu-
195 rations supported by ncurses; it adds new entrypoints
196 without changing the meaning of any of the existing ones.
198 <STRONG>IMPROVED</STRONG> <STRONG>FUNCTIONS</STRONG>
199 Most of the functions are new versions of existing func-
200 tions. A parameter is added at the front of the parameter
201 list. It is a SCREEN pointer.
203 The existing functions all use the current screen, which
204 is a static variable. The extended functions use the
205 specified screen, thereby reducing the number of variables
206 which must be modified to update multiple screens.
208 <STRONG>NEW</STRONG> <STRONG>FUNCTIONS</STRONG>
209 Here are the new functions:
212 this returns a pointer to the topmost panel in the
216 this returns a pointer to the lowest panel in the
220 when creating a new screen, the library uses static
221 variables which have been preset, e.g., by
222 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, etc. With the screen-point-
223 er extension, there are situations where it must cre-
224 ate a current screen before the unextended library
225 does. The <STRONG>new_prescr</STRONG> function is used internally to
226 handle these cases. It is also provided as an entry-
227 point to allow applications to customize the library
233 This extension introduces some new names:
236 This is set to the library patch-level number. In
237 the unextended library, this is zero (0), to make it
238 useful for checking if the extension is provided.
241 The new functions are named using the macro <EM>NCURS-</EM>
242 <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
243 Currently this adds a "_sp" suffix to the name of the
244 unextended function. This manual page indexes the
245 extensions showing the full name. However the proper
246 usage of these functions uses the macro, to provide
247 for the possibility of changing the naming convention
248 for specific library configurations.
251 This is a new function-pointer type to use in the
252 screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
253 used in the unextended library.
256 This is a function-pointer type used for the cases
257 where a function passes characters to the output
258 stream, e.g., <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>.
262 <H2>PORTABILITY</H2><PRE>
263 These routines are specific to ncurses. They were not
264 supported on Version 7, BSD or System V implementations.
265 It is recommended that any code depending on ncurses ex-
266 tensions be conditioned using <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
270 <H2>SEE ALSO</H2><PRE>
271 <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
275 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
279 Man(1) output converted with
280 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>