1dnl $Id: m4.html,v 10.117 2008/01/08 20:58:21 bostic Exp $
2
3dnl ###################################################################
4dnl	Fonts.
5dnl ###################################################################
6dnl Bold font
7define(m4_bold, <b>$1</b>)
8
9dnl Constant width bold font -- same as m4_bold in HTML
10define(m4_cbold, <b>$1</b>)
11
12dnl Italic font
13define(m4_italic, <i>$1</i>)
14
15dnl Environmental variable.
16dnl	#1: variable
17define(m4_envvar, <b>$1</b>)
18
19dnl Pathname.
20dnl	#1: path
21define(m4_path, <b>$1</b>)
22
23dnl Function argument.
24dnl	#1: argument name
25define(m4_arg, <b>$1</b>)
26
27dnl Utility option/flag.
28define(m4_option, <b>-$1</b>)
29
30dnl Utility argument
31define(m4_utilarg, __LB__<b>-$1</b>__RB__)
32
33dnl UNIX manual reference.
34dnl	#1: man page name
35dnl	#2: section
36define(m4_manref, [<b>$1</b>($2)])
37
38dnl ###################################################################
39dnl	Special Characters, Escapes.
40dnl ###################################################################
41dnl Superimposed
42define(m4_sup, [$1<sup>$2</sup>])
43
44dnl Backslash preceded string.
45dnl	#1: characters after the backslash
46define(m4_backslash, [\$1])
47
48dnl Angle-bracket quoted string.
49define(m4_htmlquote, [&lt;$1&gt;])
50
51dnl C include file
52dnl	#1: include file name
53define(m4_include, [__OCT__include &lt;$1&gt;])
54
55dnl ###################################################################
56dnl	Miscellaneous.
57dnl ###################################################################
58dnl Berkeley DB
59define(m4_db, [Berkeley DB])
60
61dnl Comment
62define(m4_comment, <!--$1-->)
63
64dnl Copyright strings.
65define(m4_copyright_source, [dnl
66<!--Copyright (c) 1997,2008 Oracle.  All rights reserved.-->
67<!--See the file LICENSE for redistribution information.-->])
68
69define(m4_copyright_footer, [dnl
70<p><font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>])
71
72dnl M4_meta definition moved to html.sed to prevent line breaks
73define(m4_meta, __M4_META__)
74
75dnl Just discard.
76define(m4_ignore,)
77
78dnl ###################################################################
79dnl	Layout: basic.
80dnl ###################################################################
81dnl Header
82define(m4_header, <br><b>$1</b>)
83
84dnl Section
85define(m4_section, <b>$1</b>)
86
87dnl Subsection
88define(m4_subsection, <h4>$1</h4>)
89
90dnl Paragraph
91define(m4_p, [<p>$1</p>])
92
93dnl Horizontal line.
94define(m4_hl, [<hr size=1 noshade>])
95
96dnl Single blank line.
97define(m4_blank, [<p>])
98
99dnl Literal text block.
100dnl	#1: string
101define(m4_literal, <pre>$1</pre>)
102
103dnl Indent literal text block.
104dnl	#1: string
105define(m4_indent, <blockquote><pre>$1</pre></blockquote>)
106
107dnl Indent text block.
108dnl	#1: string
109define(m4_indentv, <blockquote>$1</blockquote>)
110
111dnl PicGif display - Pic for ROFF/Gif for HTML
112dnl     #1: align, e.g., center
113dnl     #2: img src, e.g., M4RELDIR/ref/xxx
114dnl     #3: alternate string
115define(m4_picgif, [<p align=$1><img src="$2.gif" alt="$3">])
116
117dnl ###################################################################
118dnl	Layout: headers, titles and page bottoms.
119dnl ###################################################################
120dnl Reference Guide page leader.
121dnl	#1: section
122dnl	#2: page name
123dnl	#3: index entries
124dnl	#4,#5: prev, next
125define(m4_ref_title, [dnl
126ifelse($#, 5, , [errprint([$0: arg mismatch
127])])
128define(__m4_pagename, [$2])
129m4_copyright_source
130<html>
131<head>
132<title>ifelse(M4PRODUCT, XML, m4_xml, m4_db) Reference Guide: $2</title>
133m4_meta
134</head>
135<body bgcolor=white>
136m4_idefz($3)
137<table width="100%"><tr valign=top>
138<td><b><dl><dt>ifelse(M4PRODUCT, XML, m4_xml, m4_db) Reference Guide:<dd>$1</dl></b></td>
139<td align=right>dnl
140ifelse($4,,,
141<a href="../$4.html"><img src="M4RELDIR/images/prev.gif" alt="Prev"></a>)dnl
142<a href="../toc.html">dnl
143<img src="M4RELDIR/images/ref.gif" alt="Ref"></a>dnl
144ifelse($5,,,
145<a href="../$5.html"><img src="M4RELDIR/images/next.gif" alt="Next"></a>)
146</td></tr></table>
147<p align=center><b>$2</b></p>
148define(m4_page_footer, [dnl
149<table width="100%"><tr><td><br></td><td align=right>dnl
150ifelse($4,,,
151<a href="../$4.html"><img src="M4RELDIR/images/prev.gif" alt="Prev"></a>)dnl
152<a href="../toc.html">dnl
153<img src="M4RELDIR/images/ref.gif" alt="Ref"></a>dnl
154ifelse($5,,,
155<a href="../$5.html"><img src="M4RELDIR/images/next.gif" alt="Next"></a>)
156</td></tr></table>
157m4_copyright_footer
158</body>
159</html>])])
160
161dnl General purpose page leader
162dnl	#1: page name
163define(m4_page_title, [dnl
164m4_copyright_source
165<html>
166<head>
167<title>ifelse(M4PRODUCT, XML, m4_xml:, m4_db:) $1</title>
168m4_meta
169</head>
170<body bgcolor=white>
171<p align=center><b>$1</b></p>
172define(m4_page_footer, [dnl
173m4_copyright_footer
174</body>
175</html>])])
176
177dnl General purpose page header, included by specific page headers.
178dnl	#1: page title string
179dnl	#2: section header
180dnl	#3: API/Ref links in header/footer {yes, no}
181define(m4_page_header, [dnl
182define(__m4_pagename, [$1])
183m4_copyright_source
184<html>
185<head>
186<title>ifelse(M4PRODUCT, XML, m4_xml:, m4_db:) $1</title>
187m4_meta
188</head>
189<body bgcolor=white>
190ifelse([$2],,, [dnl
191<table width="100%"><tr valign=top>
192<td>
193<b>[$2]</b>
194</td>
195ifelse([$3],,, [dnl
196<td align=right>
197<a href="m4_iurl"><img src="M4RELDIR/images/api.gif" alt="API"></a>
198<a href="M4RELDIR/ifelse(M4PRODUCT,XML,ref_xml,ref)/toc.html">dnl
199<img src="M4RELDIR/images/ref.gif" alt="Ref"></a></td>])
200</tr></table>
201m4_hl])
202<tt>
203define(m4_page_footer, [dnl
204</tt>
205ifelse([$3],,, [dnl
206<table width="100%"><tr><td><br></td><td align=right>
207<a href="m4_iurl"><img src="M4RELDIR/images/api.gif" alt="API"></a>dnl
208<a href="M4RELDIR/ifelse(M4PRODUCT,XML,ref_xml,ref)/toc.html">dnl
209<img src="M4RELDIR/images/ref.gif" alt="Ref"></a>
210</td></tr></table>])
211m4_copyright_footer
212</body>
213</html>])])
214
215dnl Description header for C/C++ API manual pages.
216define(m4_pf_description, [dnl
217m4_hl
218<b>Description: [$1]</b>])
219
220dnl Page header for C/C++ API manual pages.
221dnl	#1: function name
222dnl	#2: function declaration
223dnl	#3: extra stuff
224define(m4_pf_header, [dnl
225m4_page_header([$1], [$1], yes)
226<b><pre>
227m4_incextra([$3])
228ifelse([$2],,, [dnl
229<p>
230$2])
231</pre></b>
232m4_pf_description([$1])])
233
234dnl Page header for Tcl manual pages.
235dnl	#1: tcl command name
236dnl	#2: tcl command name (correctly formatted)
237dnl	#3: utility Synopsis line
238define(m4_tcl_header, [dnl
239m4_page_header([$1], [$2], yes)
240<b><pre>$3</pre></b>
241<b>Description($1)</b>])
242
243dnl Page header for utilities.
244dnl	#1: utility name
245dnl	#2: utility Synopsis line
246define(m4_util_header, [dnl
247m4_page_header([$1], [$1])
248<b><pre>$2</pre></b>
249<b>Description</b>])
250
251dnl ###################################################################
252dnl	HTML links
253dnl ###################################################################
254dnl m4_link
255dnl	Link to titled DB Reference Guide page.
256dnl	#1: page
257dnl	#2: string
258define(m4_link, [<a href="$1.html">$2</a>])
259
260dnl m4_linkpage
261dnl	Link to specific address in any HTML page.
262dnl	#1: page
263dnl	#2: address (optional)
264dnl	#2/3: string to display
265define(m4_linkpage, [dnl
266ifelse($#, 3, [<a href="$1.html[__OCT__]$2">$3</a>],dnl
267[<a href="$1.html">$2</a>])])
268
269dnl m4_linkweb:
270dnl	Link to specific address in any page.
271dnl	#1: page
272dnl	#2: address (optional)
273dnl	#2/3: string to display
274define(m4_linkweb, [dnl
275ifelse($#, 3, [<a href="$1.html__OCT__$2">$3</a>],dnl
276[<a href="$1">$2</a>])])
277
278dnl m4_mailto
279dnl	Mailto construct.
280dnl	#1: address
281dnl	#2: string
282define(m4_mailto, [<a href="mailto:$1">$2</a>])
283
284dnl ###################################################################
285dnl Three forms of lists:
286dnl	- tagged
287dnl	- numbered
288dnl	- bullet item
289dnl ###################################################################
290dnl m4_tagbegin
291define(m4_tagbegin, <br>)
292dnl m4_tag: standard tag list
293dnl	#1: tag
294dnl	#2: definition
295define(m4_tag, <b>$1</b><ul compact><li>$2</ul>)
296dnl m4_tagopt: option tag list
297dnl	#1: option
298dnl	#2: definition
299define(m4_tagopt, m4_option($1)<ul compact><li>$2</ul>)
300dnl m4_tagend
301define(m4_tagend, <br>)
302
303define(m4_nlistbegin, <ol>)
304define(m4_nlist, <p><li>$1)
305define(m4_nlistns, <li>$1)
306define(m4_nlistend, </ol>)
307
308define(m4_bulletbegin, <p><ul type=disc>)
309define(m4_bullet, <li>$1)
310define(m4_bulletend, </ul>)
311
312dnl ###################################################################
313dnl	Tables
314dnl ###################################################################
315dnl m4_table_begin: a table with N elements.
316dnl	#1: optional title
317dnl	#2: option alignment (_left, _right, _center)
318dnl
319dnl m4_table_header: column headers, emboldened
320dnl
321dnl m4_table_element: table element
322dnl	#1: optional empty flag (_empty)
323dnl	#1: optional alignment (_left, _right, _center)
324dnl
325dnl m4_table_end: table end
326dnl
327define(m4_table_begin, [dnl
328[<table border=1]dnl
329ifelse([$2],,,
330    [$2], _left, [ align=left],
331    [$2], _center, [ align=center],
332    [$2], _right, [ align=right])>])
333define(m4_table_end, </table>)
334define(m4_table_header, [<tr>__m4_table_header($@)</tr>])
335define(__m4_table_header, [dnl
336ifelse([$1],,,[$1],_empty,
337<th><br></th>[__m4_table_header(shift($@))],
338<th>$1</th>[__m4_table_header(shift($@))])])
339define(m4_table_element, [<tr>__m4_table_element($@)</tr>])
340define(__m4_table_element, [dnl
341ifelse([$1],,,
342[$1], _left, [dnl
343    ifelse([$2],,,
344    <td align=left>[$2]</td>[__m4_table_element(_left, shift(shift($@)))])],
345[$1], _center, [dnl
346    ifelse([$2],,,
347    <td align=center>[$2]</td>[__m4_table_element(_center, shift(shift($@)))])],
348[$1], _right, [dnl
349    ifelse([$2],,,
350    <td align=right>[$2]</td>[__m4_table_element(_right, shift(shift($@)))])],
351[$1], _empty,
352    <td><br></td>[__m4_table_element(shift($@))],
353    <td>[$1]</td>[__m4_table_element(shift($@))])])
354
355dnl ###################################################################
356dnl	Index.
357dnl ###################################################################
358dnl __m4_icnt --
359dnl     In HTML land, each index element gets its own unique address that
360dnl	we generate based on an incremented variable, __m4_icnt.
361define(__m4_icnt, 1)
362
363dnl m4_idefz --
364dnl	$N string(s) to index
365define(m4_idefz, [dnl
366ifelse([$1],,, [dnl
367m4_idef([<!--meow-->],dnl
368ifelse(index($1,@),-1,@$1,$1))m4_idefz(shift($@))])])
369
370dnl m4_idef --
371dnl	Index definition.
372dnl	$1 display text
373dnl	$2 string to index [optional]
374define(m4_idef, [dnl
375ifelse($#, 1, [dnl
376<a name="$1">$1</a>dnl
377syscmd(echo "__APIREL__/M4PAGEPATH[__OCT__]$1 __m4_pagename@$1" >> _m4_ipath)],[dnl
378define([__m4_icnt], incr(__m4_icnt))dnl
379<a name="__m4_icnt">$1</a>dnl
380syscmd(echo "__APIREL__/M4PAGEPATH[__OCT__]__m4_icnt $2" >> _m4_ipath)])])
381