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, [<$1>]) 50 51dnl C include file 52dnl #1: include file name 53define(m4_include, [__OCT__include <$1>]) 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