aboutsummaryrefslogtreecommitdiff
path: root/man/man3/html.html
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/html.html')
-rw-r--r--man/man3/html.html1206
1 files changed, 0 insertions, 1206 deletions
diff --git a/man/man3/html.html b/man/man3/html.html
deleted file mode 100644
index 465edcdb..00000000
--- a/man/man3/html.html
+++ /dev/null
@@ -1,1206 +0,0 @@
-<head>
-<title>html(3) - Plan 9 from User Space</title>
-<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
-</head>
-<body bgcolor=#ffffff>
-<table border=0 cellpadding=0 cellspacing=0 width=100%>
-<tr height=10><td>
-<tr><td width=20><td>
-<tr><td width=20><td><b>HTML(3)</b><td align=right><b>HTML(3)</b>
-<tr><td width=20><td colspan=2>
- <br>
-<p><font size=+1><b>NAME </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- parsehtml, printitems, validitems, freeitems, freedocinfo, dimenkind,
- dimenspec, targetid, targetname, fromStr, toStr &ndash; HTML parser<br>
-
-</table>
-<p><font size=+1><b>SYNOPSIS </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- <tt><font size=+1>#include &lt;u.h&gt;<br>
- #include &lt;libc.h&gt;<br>
- #include &lt;html.h&gt;<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Item* &nbsp;&nbsp;&nbsp;parsehtml(uchar* data, int datalen, Rune* src, int mtype,<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- int chset, Docinfo** pdi)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- </table>
-
- </table>
- </font></tt>
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
-
-
- </table>
-
- </table>
- <tt><font size=+1>void &nbsp;&nbsp;&nbsp;&nbsp;printitems(Item* items, char* msg)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validitems(Item* items)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>void &nbsp;&nbsp;&nbsp;&nbsp;freeitems(Item* items)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>void &nbsp;&nbsp;&nbsp;&nbsp;freedocinfo(Docinfo* d)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dimenkind(Dimen d)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dimenspec(Dimen d)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetid(Rune* s)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Rune* &nbsp;&nbsp;&nbsp;targetname(int targid)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>uchar* fromStr(Rune* buf, int n, int chset)<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Rune* &nbsp;&nbsp;&nbsp;toStr(uchar* buf, int n, int chset)<br>
- </font></tt>
-</table>
-<p><font size=+1><b>DESCRIPTION </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- This library implements a parser for HTML 4.0 documents. The parsed
- HTML is converted into an intermediate representation that describes
- how the formatted HTML should be laid out.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <i>Parsehtml</i> parses an entire HTML document contained in the buffer
- <i>data</i> and having length <i>datalen</i>. The URL of the document should
- be passed in as <i>src</i>. <i>Mtype</i> is the media type of the document,
- which should be either <tt><font size=+1>TextHtml</font></tt> or <tt><font size=+1>TextPlain</font></tt>. The character set
- of the document is described in <i>chset</i>, which can be
- one of <tt><font size=+1>US_Ascii</font></tt>, <tt><font size=+1>ISO_8859_1</font></tt>, <tt><font size=+1>UTF_8</font></tt> or <tt><font size=+1>Unicode</font></tt>. The return value
- is a linked list of <tt><font size=+1>Item</font></tt> structures, described in detail below.
- As a side effect, <tt><font size=+1>*</font></tt><i>pdi</i> is set to point to a newly created <tt><font size=+1>Docinfo</font></tt>
- structure, containing information pertaining to the entire document.
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The library expects two allocation routines to be provided by
- the caller, <tt><font size=+1>emalloc</font></tt> and <tt><font size=+1>erealloc</font></tt>. These routines are analogous
- to the standard malloc and realloc routines, except that they
- should not return if the memory allocation fails. In addition,
- <tt><font size=+1>emalloc</font></tt> is required to zero the memory.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- For debugging purposes, <i>printitems</i> may be called to display the
- contents of an item list; individual items may be printed using
- the <tt><font size=+1>%I</font></tt> print verb, installed on the first call to <i>parsehtml</i>. <i>validitems</i>
- traverses the item list, checking that all of the pointers are
- valid. It returns <tt><font size=+1>1</font></tt> is everything is ok, and <tt><font size=+1>0</font></tt> if an error was
- found. Normally, one would not call these routines directly. Instead,
- one sets the global variable <i>dbgbuild</i> and the library calls them
- automatically. One can also set <i>warn</i>, to cause the library to
- print a warning whenever it finds a problem with the input document,
- and <i>dbglex</i>, to print debugging information in the
- lexer.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- When an item list is finished with, it should be freed with <i>freeitems</i>.
- Then, <i>freedocinfo</i> should be called on the pointer returned in
- <tt><font size=+1>*</font></tt><i>pdi</i>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <i>Dimenkind</i> and <i>dimenspec</i> are provided to interpret the <tt><font size=+1>Dimen</font></tt> type,
- as described in the section <i>Dimension Specifications</i>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Frame target names are mapped to integer ids via a global, permanent
- mapping. To find the value for a given name, call <i>targetid</i>, which
- allocates a new id if the name hasn&#8217;t been seen before. The name
- of a given, known id may be retrieved using <i>targetname</i>. The library
- predefines <tt><font size=+1>FTtop</font></tt>, <tt><font size=+1>FTself</font></tt>, <tt><font size=+1>FTparent</font></tt> and
- <tt><font size=+1>FTblank</font></tt>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The library handles all text as Unicode strings (type <tt><font size=+1>Rune*</font></tt>).
- Character set conversion is provided by <i>fromStr</i> and <i>toStr</i>. <i>FromStr</i>
- takes <i>n</i> Unicode characters from <i>buf</i> and converts them to the character
- set described by <i>chset</i>. <i>ToStr</i> takes <i>n</i> bytes from <i>buf</i>, interpretted
- as belonging to character set <i>chset</i>, and converts
- them to a Unicode string. Both routines null-terminate the result,
- and use <tt><font size=+1>emalloc</font></tt> to allocate space for it.<br>
- <p><font size=+1><b>Items </b></font><br>
- The return value of <i>parsehtml</i> is a linked list of variant structures,
- with the generic portion described by the following definition:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Item Item;<br>
- struct Item<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ascent;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anchorid;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state;<br>
- Genattr* genattr;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- The field <tt><font size=+1>next</font></tt> points to the successor in the linked list of items,
- while <tt><font size=+1>width</font></tt>, <tt><font size=+1>height</font></tt>, and <tt><font size=+1>ascent</font></tt> are intended for use by the caller
- as part of the layout process. <tt><font size=+1>Anchorid</font></tt>, if non-zero, gives the
- integer id assigned by the parser to the anchor that this item
- is in (see section <i>Anchors</i>). <tt><font size=+1>State</font></tt> is a collection of
- flags and values described as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>enum<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- IFbrk = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x80000000,<br>
- IFbrksp = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x40000000,<br>
- IFnobrk = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x20000000,<br>
- IFcleft = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x10000000,<br>
- IFcright = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x08000000,<br>
- IFwrap = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x04000000,<br>
- IFhang = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x02000000,<br>
- IFrjust = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x01000000,<br>
- IFcjust = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00800000,<br>
- IFsmap = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00400000,<br>
- IFindentshift = 8,<br>
- IFindentmask = &nbsp;&nbsp;&nbsp;(255&lt;&lt;IFindentshift),<br>
- IFhangmask = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;255<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>IFbrk</font></tt> is set if a break is to be forced before placing this item.
- <tt><font size=+1>IFbrksp</font></tt> is set if a 1 line space should be added to the break
- (in which case <tt><font size=+1>IFbrk</font></tt> is also set). <tt><font size=+1>IFnobrk</font></tt> is set if a break is
- not permitted before the item. <tt><font size=+1>IFcleft</font></tt> is set if left floats should
- be cleared (that is, if the list of pending left floats should
- be placed) before this item is placed, and <tt><font size=+1>IFcright</font></tt> is set for
- right floats. In both cases, IFbrk is also set. <tt><font size=+1>IFwrap</font></tt> is set
- if the line containing this item is allowed to wrap. <tt><font size=+1>IFhang</font></tt> is
- set if this item hangs into the left indent. <tt><font size=+1>IFrjust</font></tt> is set if
- the line containing this item should be right justified, and <tt><font size=+1>IFcjust</font></tt>
- is
- set for center justified lines. <tt><font size=+1>IFsmap</font></tt> is used to indicate that
- an image is a server-side map. The low 8 bits, represented by
- <tt><font size=+1>IFhangmask</font></tt>, indicate the current hang into left indent, in tenths
- of a tabstop. The next 8 bits, represented by <tt><font size=+1>IFindentmask</font></tt> and
- <tt><font size=+1>IFindentshift</font></tt>, indicate the current indent in tab
- stops.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The field <tt><font size=+1>genattr</font></tt> is an optional pointer to an auxiliary structure,
- described in the section <i>Generic Attributes</i>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Finally, <tt><font size=+1>tag</font></tt> describes which variant type this item has. It can
- have one of the values <tt><font size=+1>Itexttag</font></tt>, <tt><font size=+1>Iruletag</font></tt>, <tt><font size=+1>Iimagetag</font></tt>, <tt><font size=+1>Iformfieldtag</font></tt>,
- <tt><font size=+1>Itabletag</font></tt>, <tt><font size=+1>Ifloattag</font></tt> or <tt><font size=+1>Ispacertag</font></tt>. For each of these values,
- there is an additional structure defined, which includes Item
- as an unnamed initial substructure,
- and then defines additional fields.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Items of type <tt><font size=+1>Itexttag</font></tt> represent a piece of text, using the following
- structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Itext<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- Rune* s;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;fnt;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;fg;<br>
- uchar voff;<br>
- uchar ul;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Here <tt><font size=+1>s</font></tt> is a null-terminated Unicode string of the actual characters
- making up this text item, <tt><font size=+1>fnt</font></tt> is the font number (described in
- the section <i>Font Numbers</i>), and <tt><font size=+1>fg</font></tt> is the RGB encoded color for
- the text. <tt><font size=+1>Voff</font></tt> measures the vertical offset from the baseline;
- subtract <tt><font size=+1>Voffbias</font></tt> to get the actual value (negative values
- represent a displacement down the page). The field <tt><font size=+1>ul</font></tt> is the underline
- style: <tt><font size=+1>ULnone</font></tt> if no underline, <tt><font size=+1>ULunder</font></tt> for conventional underline,
- and <tt><font size=+1>ULmid</font></tt> for strike-through.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Items of type <tt><font size=+1>Iruletag</font></tt> represent a horizontal rule, as follows:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Irule<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- uchar align;<br>
- uchar noshade;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;size;<br>
- Dimen wspec;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Here <tt><font size=+1>align</font></tt> is the alignment specification (described in the corresponding
- section), <tt><font size=+1>noshade</font></tt> is set if the rule should not be shaded, <tt><font size=+1>size</font></tt>
- is the height of the rule (as set by the size attribute), and
- <tt><font size=+1>wspec</font></tt> is the desired width (see section <i>Dimension Specifications</i>).
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Items of type <tt><font size=+1>Iimagetag</font></tt> describe embedded images, for which the
- following structure is defined:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Iimage<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;imsrc;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imwidth;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imheight;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;altrep;<br>
- Map* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctlid;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;align;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;hspace;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;vspace;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;border;<br>
- Iimage* nextimage;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Here <tt><font size=+1>imsrc</font></tt> is the URL of the image source, <tt><font size=+1>imwidth</font></tt> and <tt><font size=+1>imheight</font></tt>,
- if non-zero, contain the specified width and height for the image,
- and <tt><font size=+1>altrep</font></tt> is the text to use as an alternative to the image,
- if the image is not displayed. <tt><font size=+1>Map</font></tt>, if set, points to a structure
- describing an associated client-side image map.
- <tt><font size=+1>Ctlid</font></tt> is reserved for use by the application, for handling animated
- images. <tt><font size=+1>Align</font></tt> encodes the alignment specification of the image.
- <tt><font size=+1>Hspace</font></tt> contains the number of pixels to pad the image with on
- either side, and <tt><font size=+1>Vspace</font></tt> the padding above and below. <tt><font size=+1>Border</font></tt> is
- the width of the border to draw around the
- image. <tt><font size=+1>Nextimage</font></tt> points to the next image in the document (the
- head of this list is <tt><font size=+1>Docinfo.images</font></tt>).
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- For items of type <tt><font size=+1>Iformfieldtag</font></tt>, the following structure is defined:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Iformfield<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- Formfield* formfield;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- This adds a single field, <tt><font size=+1>formfield</font></tt>, which points to a structure
- describing a field in a form, described in section <i>Forms</i>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- For items of type <tt><font size=+1>Itabletag</font></tt>, the following structure is defined:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Itable<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- Table* table;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Table</font></tt> points to a structure describing the table, described in
- the section <i>Tables</i>.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- For items of type <tt><font size=+1>Ifloattag</font></tt>, the following structure is defined:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Ifloat<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- Item* &nbsp;&nbsp;&nbsp;&nbsp;item;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;side;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;infloats;<br>
- Ifloat* nextfloat;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- The <tt><font size=+1>item</font></tt> points to a single item (either a table or an image)
- that floats (the text of the document flows around it), and <tt><font size=+1>side</font></tt>
- indicates the margin that this float sticks to; it is either <tt><font size=+1>ALleft</font></tt>
- or <tt><font size=+1>ALright</font></tt>. <tt><font size=+1>X</font></tt> and <tt><font size=+1>y</font></tt> are reserved for use by the caller; these
- are typically used for the coordinates of the top of the float.
- <tt><font size=+1>Infloats</font></tt> is used by the caller to keep track of whether it has
- placed the float. <tt><font size=+1>Nextfloat</font></tt> is used by the caller to link together
- all of the floats that it has placed.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- For items of type <tt><font size=+1>Ispacertag</font></tt>, the following structure is defined:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>struct Ispacer<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Item;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;spkind;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Spkind</font></tt> encodes the kind of spacer, and may be one of <tt><font size=+1>ISPnull</font></tt> (zero
- height and width), <tt><font size=+1>ISPvline</font></tt> (takes on height and ascent of the
- current font), <tt><font size=+1>ISPhspace</font></tt> (has the width of a space in the current
- font) and <tt><font size=+1>ISPgeneral</font></tt> (for all other purposes, such as between
- markers and lists).
- <p><font size=+1><b>Generic Attributes </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The genattr field of an item, if non-nil, points to a structure
- that holds the values of attributes not specific to any particular
- item type, as they occur on a wide variety of underlying HTML
- tags. The structure is as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Genattr Genattr;<br>
- struct Genattr<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;id;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;class;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;style;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;title;<br>
- SEvent* events;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Fields <tt><font size=+1>id</font></tt>, <tt><font size=+1>class</font></tt>, <tt><font size=+1>style</font></tt> and <tt><font size=+1>title</font></tt>, when non-nil, contain values
- of correspondingly named attributes of the HTML tag associated
- with this item. <tt><font size=+1>Events</font></tt> is a linked list of events (with corresponding
- scripted actions) associated with the item:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct SEvent SEvent;<br>
- struct SEvent<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- SEvent* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;script;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Here, <tt><font size=+1>next</font></tt> points to the next event in the list, <tt><font size=+1>type</font></tt> is one of
- <tt><font size=+1>SEonblur</font></tt>, <tt><font size=+1>SEonchange</font></tt>, <tt><font size=+1>SEonclick</font></tt>, <tt><font size=+1>SEondblclick</font></tt>, <tt><font size=+1>SEonfocus</font></tt>, <tt><font size=+1>SEonkeypress</font></tt>,
- <tt><font size=+1>SEonkeyup</font></tt>, <tt><font size=+1>SEonload</font></tt>, <tt><font size=+1>SEonmousedown</font></tt>, <tt><font size=+1>SEonmousemove</font></tt>, <tt><font size=+1>SEonmouseout</font></tt>,
- <tt><font size=+1>SEonmouseover</font></tt>, <tt><font size=+1>SEonmouseup</font></tt>, <tt><font size=+1>SEonreset</font></tt>, <tt><font size=+1>SEonselect</font></tt>,
- <tt><font size=+1>SEonsubmit</font></tt> or <tt><font size=+1>SEonunload</font></tt>, and <tt><font size=+1>script</font></tt> is the text of the associated
- script.<br>
- <p><font size=+1><b>Dimension Specifications </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Some structures include a dimension specification, used where
- a number can be followed by a <tt><font size=+1>%</font></tt> or a <tt><font size=+1>*</font></tt> to indicate percentage
- of total or relative weight. This is encoded using the following
- structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Dimen Dimen;<br>
- struct Dimen<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- int kindspec;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Separate kind and spec values are extracted using <i>dimenkind</i> and
- <i>dimenspec</i>. <i>Dimenkind</i> returns one of <tt><font size=+1>Dnone</font></tt>, <tt><font size=+1>Dpixels</font></tt>, <tt><font size=+1>Dpercent</font></tt> or
- <tt><font size=+1>Drelative</font></tt>. <tt><font size=+1>Dnone</font></tt> means that no dimension was specified. In all
- other cases, <i>dimenspec</i> should be called to find the absolute number
- of pixels, the percentage of total, or the
- relative weight.<br>
- <p><font size=+1><b>Background Specifications </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- It is possible to set the background of the entire document, and
- also for some parts of the document (such as tables). This is
- encoded as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Background Background;<br>
- struct Background<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Rune* image;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;color;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Image</font></tt>, if non-nil, is the URL of an image to use as the background.
- If this is nil, <tt><font size=+1>color</font></tt> is used instead, as the RGB value for a
- solid fill color.<br>
- <p><font size=+1><b>Alignment Specifications </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Certain items have alignment specifiers taken from the following
- enumerated type:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>enum<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- ALnone = 0, ALleft, ALcenter, ALright, ALjustify,<br>
- ALchar, ALtop, ALmiddle, ALbottom, ALbaseline<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- These values correspond to the various alignment types named in
- the HTML 4.0 standard. If an item has an alignment of <tt><font size=+1>ALleft</font></tt> or
- <tt><font size=+1>ALright</font></tt>, the library automatically encapsulates it inside a float
- item.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Tables, and the various rows, columns and cells within them, have
- a more complex alignment specification, composed of separate vertical
- and horizontal alignments:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Align Align;<br>
- struct Align<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- uchar halign;<br>
- uchar valign;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Halign</font></tt> can be one of <tt><font size=+1>ALnone</font></tt>, <tt><font size=+1>ALleft</font></tt>, <tt><font size=+1>ALcenter</font></tt>, <tt><font size=+1>ALright</font></tt>, <tt><font size=+1>ALjustify</font></tt>
- or <tt><font size=+1>ALchar</font></tt>. <tt><font size=+1>Valign</font></tt> can be one of <tt><font size=+1>ALnone</font></tt>, <tt><font size=+1>ALmiddle</font></tt>, <tt><font size=+1>ALbottom</font></tt>, <tt><font size=+1>ALtop</font></tt>
- or <tt><font size=+1>ALbaseline</font></tt>.<br>
- <p><font size=+1><b>Font Numbers </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Text items have an associated font number (the <tt><font size=+1>fnt</font></tt> field), which
- is encoded as <tt><font size=+1>style*NumSize+size</font></tt>. Here, <tt><font size=+1>style</font></tt> is one of <tt><font size=+1>FntR</font></tt>,
- <tt><font size=+1>FntI</font></tt>, <tt><font size=+1>FntB</font></tt> or <tt><font size=+1>FntT</font></tt>, for roman, italic, bold and typewriter font
- styles, respectively, and size is <tt><font size=+1>Tiny</font></tt>, <tt><font size=+1>Small</font></tt>, <tt><font size=+1>Normal</font></tt>, <tt><font size=+1>Large</font></tt> or
- <tt><font size=+1>Verylarge</font></tt>. The total number of possible
- font numbers is <tt><font size=+1>NumFnt</font></tt>, and the default font number is <tt><font size=+1>DefFnt</font></tt>
- (which is roman style, normal size).<br>
- <p><font size=+1><b>Document Info </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Global information about an HTML page is stored in the following
- structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Docinfo Docinfo;<br>
- struct Docinfo<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- // stuff from HTTP headers, doc head, and body tag<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doctitle;<br>
- Background &nbsp;&nbsp;&nbsp;background;<br>
- Iimage* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backgrounditem;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlink;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alink;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chset;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mediatype;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scripttype;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hasscripts;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh;<br>
- Kidinfo* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kidinfo;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameid;<br>
- // info needed to respond to user actions<br>
- Anchor* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anchors;<br>
- DestAnchor* dests;<br>
- Form* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;forms;<br>
- Table* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tables;<br>
- Map* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps;<br>
- Iimage* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;images;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Src</font></tt> gives the URL of the original source of the document, and
- <tt><font size=+1>base</font></tt> is the base URL. <tt><font size=+1>Doctitle</font></tt> is the document&#8217;s title, as set
- by a <tt><font size=+1>&lt;title&gt;</font></tt> element. <tt><font size=+1>Background</font></tt> is as described in the section
- <i>Background Specifications</i>, and <tt><font size=+1>backgrounditem</font></tt> is set to be an
- image item for the document&#8217;s background image
- (if given as a URL), or else nil. <tt><font size=+1>Text</font></tt> gives the default foregound
- text color of the document, <tt><font size=+1>link</font></tt> the unvisited hyperlink color,
- <tt><font size=+1>vlink</font></tt> the visited hyperlink color, and <tt><font size=+1>alink</font></tt> the color for highlighting
- hyperlinks (all in 24-bit RGB format). <tt><font size=+1>Target</font></tt> is the default target
- frame id. <tt><font size=+1>Chset</font></tt> and <tt><font size=+1>mediatype</font></tt> are as for
- the <i>chset</i> and <i>mtype</i> parameters to <i>parsehtml</i>. <tt><font size=+1>Scripttype</font></tt> is the
- type of any scripts contained in the document, and is always <tt><font size=+1>TextJavascript</font></tt>.
- <tt><font size=+1>Hasscripts</font></tt> is set if the document contains any scripts. Scripting
- is currently unsupported. <tt><font size=+1>Refresh</font></tt> is the contents of a <tt><font size=+1>&lt;meta http&#8722;equiv=Refresh
- ...&gt;</font></tt> tag, if any. <tt><font size=+1>Kidinfo</font></tt> is set if this document is a frameset
- (see section <i>Frames</i>). <tt><font size=+1>Frameid</font></tt> is this document&#8217;s frame id.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>Anchors</font></tt> is a list of hyperlinks contained in the document, and
- <tt><font size=+1>dests</font></tt> is a list of hyperlink destinations within the page (see
- the following section for details). <tt><font size=+1>Forms</font></tt>, <tt><font size=+1>tables</font></tt> and <tt><font size=+1>maps</font></tt> are
- lists of the various forms, tables and client-side maps contained
- in the document, as described in subsequent sections.
- <tt><font size=+1>Images</font></tt> is a list of all the image items in the document.<br>
- <p><font size=+1><b>Anchors </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The library builds two lists for all of the <tt><font size=+1>&lt;a&gt;</font></tt> elements (anchors)
- in a document. Each anchor is assigned a unique anchor id within
- the document. For anchors which are hyperlinks (the <tt><font size=+1>href</font></tt> attribute
- was supplied), the following structure is defined:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Anchor Anchor;<br>
- struct Anchor<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Anchor* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;name;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;href;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next anchor in the list (the head of this list
- is <tt><font size=+1>Docinfo.anchors</font></tt>). <tt><font size=+1>Index</font></tt> is the anchor id; each item within
- this hyperlink is tagged with this value in its <tt><font size=+1>anchorid</font></tt> field.
- <tt><font size=+1>Name</font></tt> and <tt><font size=+1>href</font></tt> are the values of the correspondingly named attributes
- of the anchor (in particular, href is the URL to go
- to). <tt><font size=+1>Target</font></tt> is the value of the target attribute (if provided)
- converted to a frame id.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Destinations within the document (anchors with the name attribute
- set) are held in the <tt><font size=+1>Docinfo.dests</font></tt> list, using the following structure:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct DestAnchor DestAnchor;<br>
- struct DestAnchor<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- DestAnchor* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name;<br>
- Item* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> is the next element of the list, <tt><font size=+1>index</font></tt> is the anchor id,
- <tt><font size=+1>name</font></tt> is the value of the name attribute, and <tt><font size=+1>item</font></tt> is points to
- the item within the parsed document that should be considered
- to be the destination.<br>
- <p><font size=+1><b>Forms </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Any forms within a document are kept in a list, headed by <tt><font size=+1>Docinfo.forms</font></tt>.
- The elements of this list are as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Form Form;<br>
- struct Form<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Form* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formid;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nfields;<br>
- Formfield* fields;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next form in the list. <tt><font size=+1>Formid</font></tt> is a serial number
- for the form within the document. <tt><font size=+1>Name</font></tt> is the value of the form&#8217;s
- name or id attribute. <tt><font size=+1>Action</font></tt> is the value of any action attribute.
- <tt><font size=+1>Target</font></tt> is the value of the target attribute (if any) converted
- to a frame target id. <tt><font size=+1>Method</font></tt> is one of <tt><font size=+1>HGet</font></tt> or
- <tt><font size=+1>HPost</font></tt>. <tt><font size=+1>Nfields</font></tt> is the number of fields in the form, and <tt><font size=+1>fields</font></tt>
- is a linked list of the actual fields.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The individual fields in a form are described by the following
- structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Formfield Formfield;<br>
- struct Formfield<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Formfield* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftype;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldid;<br>
- Form* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxlength;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rows;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cols;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags;<br>
- Option* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options;<br>
- Item* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctlid;<br>
- SEvent* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;events;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- Here, <tt><font size=+1>next</font></tt> points to the next field in the list. <tt><font size=+1>Ftype</font></tt> is the
- type of the field, which can be one of <tt><font size=+1>Ftext</font></tt>, <tt><font size=+1>Fpassword</font></tt>, <tt><font size=+1>Fcheckbox</font></tt>,
- <tt><font size=+1>Fradio</font></tt>, <tt><font size=+1>Fsubmit</font></tt>, <tt><font size=+1>Fhidden</font></tt>, <tt><font size=+1>Fimage</font></tt>, <tt><font size=+1>Freset</font></tt>, <tt><font size=+1>Ffile</font></tt>, <tt><font size=+1>Fbutton</font></tt>, <tt><font size=+1>Fselect</font></tt>
- or <tt><font size=+1>Ftextarea</font></tt>. <tt><font size=+1>Fieldid</font></tt> is a serial number for the field within
- the form. <tt><font size=+1>Form</font></tt> points back
- to the form containing this field. <tt><font size=+1>Name</font></tt>, <tt><font size=+1>value</font></tt>, <tt><font size=+1>size</font></tt>, <tt><font size=+1>maxlength</font></tt>,
- <tt><font size=+1>rows</font></tt> and <tt><font size=+1>cols</font></tt> each contain the values of corresponding attributes
- of the field, if present. <tt><font size=+1>Flags</font></tt> contains per-field flags, of which
- <tt><font size=+1>FFchecked</font></tt> and <tt><font size=+1>FFmultiple</font></tt> are defined. <tt><font size=+1>Image</font></tt> is only used for fields
- of type <tt><font size=+1>Fimage</font></tt>; it points to an
- image item containing the image to be displayed. <tt><font size=+1>Ctlid</font></tt> is reserved
- for use by the caller, typically to store a unique id of an associated
- control used to implement the field. <tt><font size=+1>Events</font></tt> is the same as the
- corresponding field of the generic attributes associated with
- the item containing this field. <tt><font size=+1>Options</font></tt> is only used by
- fields of type <tt><font size=+1>Fselect</font></tt>; it consists of a list of possible options
- that may be selected for that field, using the following structure:
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Option Option;<br>
- struct Option<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Option* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selected;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;value;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;display;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next element of the list. <tt><font size=+1>Selected</font></tt> is set if
- this option is to be displayed initially. <tt><font size=+1>Value</font></tt> is the value to
- send when the form is submitted if this option is selected. <tt><font size=+1>Display</font></tt>
- is the string to display on the screen for this option.<br>
- <p><font size=+1><b>Tables </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The library builds a list of all the tables in the document, headed
- by <tt><font size=+1>Docinfo.tables</font></tt>. Each element of this list has the following
- format:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Table Table;<br>
- struct Table<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Table* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tableid;<br>
- Tablerow* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rows;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nrow;<br>
- Tablecol* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cols;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ncol;<br>
- Tablecell* &nbsp;&nbsp;&nbsp;&nbsp;cells;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ncell;<br>
- Tablecell*** grid;<br>
- Align &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align;<br>
- Dimen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellspacing;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellpadding;<br>
- Background &nbsp;&nbsp;&nbsp;&nbsp;background;<br>
- Item* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caption;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caption_place;<br>
- Lay* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caption_lay;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totw;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toth;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caph;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;availw;<br>
- Token* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabletok;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next element in the list of tables. <tt><font size=+1>Tableid</font></tt>
- is a serial number for the table within the document. <tt><font size=+1>Rows</font></tt> is
- an array of row specifications (described below) and <tt><font size=+1>nrow</font></tt> is the
- number of elements in this array. Similarly, <tt><font size=+1>cols</font></tt> is an array
- of column specifications, and <tt><font size=+1>ncol</font></tt> the size of this array.
- <tt><font size=+1>Cells</font></tt> is a list of all cells within the table (structure described
- below) and <tt><font size=+1>ncell</font></tt> is the number of elements in this list. Note
- that a cell may span multiple rows and/or columns, thus <tt><font size=+1>ncell</font></tt>
- may be smaller than <tt><font size=+1>nrow*ncol</font></tt>. <tt><font size=+1>Grid</font></tt> is a two-dimensional array
- of cells within the table; the cell at row <tt><font size=+1>i</font></tt> and column <tt><font size=+1>j</font></tt> is
- <tt><font size=+1>Table.grid[i][j]</font></tt>. A cell that spans multiple rows and/or columns
- will be referenced by <tt><font size=+1>grid</font></tt> multiple times, however it will only
- occur once in <tt><font size=+1>cells</font></tt>. <tt><font size=+1>Align</font></tt> gives the alignment specification for
- the entire table, and <tt><font size=+1>width</font></tt> gives the requested width as a dimension
- specification. <tt><font size=+1>Border</font></tt>, <tt><font size=+1>cellspacing
- </font></tt>and <tt><font size=+1>cellpadding</font></tt> give the values of the corresponding attributes
- for the table, and <tt><font size=+1>background</font></tt> gives the requested background for
- the table. <tt><font size=+1>Caption</font></tt> is a linked list of items to be displayed as
- the caption of the table, either above or below depending on whether
- <tt><font size=+1>caption_place</font></tt> is <tt><font size=+1>ALtop</font></tt> or <tt><font size=+1>ALbottom</font></tt>.
- Most of the remaining fields are reserved for use by the caller,
- except <tt><font size=+1>tabletok</font></tt>, which is reserved for internal use. The type
- <tt><font size=+1>Lay</font></tt> is not defined by the library; the caller can provide its
- own definition.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The <tt><font size=+1>Tablecol</font></tt> structure is defined for use by the caller. The library
- ensures that the correct number of these is allocated, but leaves
- them blank. The fields are as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Tablecol Tablecol;<br>
- struct Tablecol<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- int &nbsp;&nbsp;&nbsp;&nbsp;width;<br>
- Align align;<br>
- Point pos;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- The rows in the table are specified as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Tablerow Tablerow;<br>
- struct Tablerow<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Tablerow* &nbsp;&nbsp;&nbsp;next;<br>
- Tablecell* cells;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ascent;<br>
- Align &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align;<br>
- Background background;<br>
- Point &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> is only used during parsing; it should be ignored by the
- caller. <tt><font size=+1>Cells</font></tt> provides a list of all the cells in a row, linked
- through their <tt><font size=+1>nextinrow</font></tt> fields (see below). <tt><font size=+1>Height</font></tt>, <tt><font size=+1>ascent</font></tt> and
- <tt><font size=+1>pos</font></tt> are reserved for use by the caller. <tt><font size=+1>Align</font></tt> is the alignment
- specification for the row, and <tt><font size=+1>background</font></tt> is the
- background to use, if specified. <tt><font size=+1>Flags</font></tt> is used by the parser;
- ignore this field.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The individual cells of the table are described as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Tablecell Tablecell;<br>
- struct Tablecell<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Tablecell* next;<br>
- Tablecell* nextinrow;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellid;<br>
- Item* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content;<br>
- Lay* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lay;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rowspan;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colspan;<br>
- Align &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align;<br>
- uchar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags;<br>
- Dimen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wspec;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hspec;<br>
- Background background;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minw;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxw;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ascent;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col;<br>
- Point &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> is used to link together the list of all cells within a table
- (<tt><font size=+1>Table.cells</font></tt>), whereas <tt><font size=+1>nextinrow</font></tt> is used to link together all
- the cells within a single row (<tt><font size=+1>Tablerow.cells</font></tt>). <tt><font size=+1>Cellid</font></tt> provides
- a serial number for the cell within the table. <tt><font size=+1>Content</font></tt> is a linked
- list of the items to be laid out within the cell. <tt><font size=+1>Lay
- </font></tt>is reserved for the user to describe how these items have been
- laid out. <tt><font size=+1>Rowspan</font></tt> and <tt><font size=+1>colspan</font></tt> are the number of rows and columns
- spanned by this cell, respectively. <tt><font size=+1>Align</font></tt> is the alignment specification
- for the cell. <tt><font size=+1>Flags</font></tt> is some combination of <tt><font size=+1>TFparsing</font></tt>, <tt><font size=+1>TFnowrap</font></tt>
- and <tt><font size=+1>TFisth</font></tt> or&#8217;d together. Here
- <tt><font size=+1>TFparsing</font></tt> is used internally by the parser, and should be ignored.
- <tt><font size=+1>TFnowrap</font></tt> means that the contents of the cell should not be wrapped
- if they don&#8217;t fit the available width, rather, the table should
- be expanded if need be (this is set when the nowrap attribute
- is supplied). <tt><font size=+1>TFisth</font></tt> means that the cell was created
- by the <tt><font size=+1>&lt;th&gt;</font></tt> element (rather than the <tt><font size=+1>&lt;td&gt;</font></tt> element), indicating that
- it is a header cell rather than a data cell. <tt><font size=+1>Wspec</font></tt> provides a
- suggested width as a dimension specification, and <tt><font size=+1>hspec</font></tt> provides
- a suggested height in pixels. <tt><font size=+1>Background</font></tt> gives a background specification
- for the individual cell. <tt><font size=+1>Minw</font></tt>, <tt><font size=+1>maxw</font></tt>,
- <tt><font size=+1>ascent</font></tt> and <tt><font size=+1>pos</font></tt> are reserved for use by the caller during layout.
- <tt><font size=+1>Row</font></tt> and <tt><font size=+1>col</font></tt> give the indices of the row and column of the top
- left-hand corner of the cell within the table grid.<br>
- <p><font size=+1><b>Client-side Maps </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The library builds a list of client-side maps, headed by <tt><font size=+1>Docinfo.maps</font></tt>,
- and having the following structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Map Map;<br>
- struct Map<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Map* &nbsp;&nbsp;&nbsp;next;<br>
- Rune* name;<br>
- Area* areas;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next element in the list, <tt><font size=+1>name</font></tt> is the name
- of the map (use to bind it to an image), and <tt><font size=+1>areas</font></tt> is a list of
- the areas within the image that comprise the map, using the following
- structure:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Area Area;<br>
- struct Area<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Area* &nbsp;&nbsp;&nbsp;next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shape;<br>
- Rune* &nbsp;&nbsp;&nbsp;href;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target;<br>
- Dimen* coords;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ncoords;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> points to the next element in the map&#8217;s list of areas. <tt><font size=+1>Shape</font></tt>
- describes the shape of the area, and is one of <tt><font size=+1>SHrect</font></tt>, <tt><font size=+1>SHcircle</font></tt>
- or <tt><font size=+1>SHpoly</font></tt>. <tt><font size=+1>Href</font></tt> is the URL associated with this area in its role
- as a hypertext link, and <tt><font size=+1>target</font></tt> is the target frame it should
- be loaded in. <tt><font size=+1>Coords</font></tt> is an array of coordinates for
- the shape, and <tt><font size=+1>ncoords</font></tt> is the size of this array (number of elements).<br>
- <p><font size=+1><b>Frames </b></font><br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- If the <tt><font size=+1>Docinfo.kidinfo</font></tt> field is set, the document is a frameset.
- In this case, it is typical for <i>parsehtml</i> to return nil, as a
- document which is a frameset should have no actual items that
- need to be laid out (such will appear only in subsidiary documents).
- It is possible that items will be returned by a malformed
- document; the caller should check for this and free any such items.
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The <tt><font size=+1>Kidinfo</font></tt> structure itself reflects the fact that framesets
- can be nested within a document. If is defined as follows:
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- <tt><font size=+1>typedef struct Kidinfo Kidinfo;<br>
- struct Kidinfo<br>
- {<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- Kidinfo* next;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isframeset;<br>
- // fields for &quot;frame&quot;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src;<br>
- Rune* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginw;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginh;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;framebd;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags;<br>
- // fields for &quot;frameset&quot;<br>
- Dimen* &nbsp;&nbsp;&nbsp;&nbsp;rows;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nrows;<br>
- Dimen* &nbsp;&nbsp;&nbsp;&nbsp;cols;<br>
- int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ncols;<br>
- Kidinfo* kidinfos;<br>
- Kidinfo* nextframeset;<br>
-
- </table>
- };<br>
-
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
- </font></tt>
- <tt><font size=+1>Next</font></tt> is only used if this structure is part of a containing frameset;
- it points to the next element in the list of children of that
- frameset. <tt><font size=+1>Isframeset</font></tt> is set when this structure represents a frameset;
- if clear, it is an individual frame.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- Some fields are used only for framesets. <tt><font size=+1>Rows</font></tt> is an array of dimension
- specifications for rows in the frameset, and <tt><font size=+1>nrows</font></tt> is the length
- of this array. <tt><font size=+1>Cols</font></tt> is the corresponding array for columns, of
- length <tt><font size=+1>ncols</font></tt>. <tt><font size=+1>Kidinfos</font></tt> points to a list of components contained
- within this frameset, each of which may be a
- frameset or a frame. <tt><font size=+1>Nextframeset</font></tt> is only used during parsing,
- and should be ignored.
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- The remaining fields are used if the structure describes a frame,
- not a frameset. <tt><font size=+1>Src</font></tt> provides the URL for the document that should
- be initially loaded into this frame. Note that this may be a relative
- URL, in which case it should be interpretted using the containing
- document&#8217;s URL as the base. <tt><font size=+1>Name</font></tt> gives the name of
- the frame, typically supplied via a name attribute in the HTML.
- If no name was given, the library allocates one. <tt><font size=+1>Marginw</font></tt>, <tt><font size=+1>marginh</font></tt>
- and <tt><font size=+1>framebd</font></tt> are the values of the marginwidth, marginheight and
- frameborder attributes, respectively. <tt><font size=+1>Flags</font></tt> can contain some combination
- of the following: <tt><font size=+1>FRnoresize</font></tt> (the
- frame had the noresize attribute set, and the user should not
- be allowed to resize it), <tt><font size=+1>FRnoscroll</font></tt> (the frame should not have
- any scroll bars), <tt><font size=+1>FRhscroll</font></tt> (the frame should have a horizontal
- scroll bar), <tt><font size=+1>FRvscroll</font></tt> (the frame should have a vertical scroll
- bar), <tt><font size=+1>FRhscrollauto</font></tt> (the frame should be automatically
- given a horizontal scroll bar if its contents would not otherwise
- fit), and <tt><font size=+1>FRvscrollauto</font></tt> (the frame gets a vertical scrollbar only
- if required).<br>
-
-</table>
-<p><font size=+1><b>SOURCE </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- <tt><font size=+1>/usr/local/plan9/src/libhtml<br>
- </font></tt>
-</table>
-<p><font size=+1><b>SEE ALSO </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- <a href="../man1/fmt.html"><i>fmt</i>(1)</a>
- <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
-
- W3C World Wide Web Consortium, &#8220;HTML 4.01 Specification&#8221;.<br>
-
-</table>
-<p><font size=+1><b>BUGS </b></font><br>
-
-<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
-
- The entire HTML document must be loaded into memory before any
- of it can be parsed.<br>
-
-</table>
-
-<td width=20>
-<tr height=20><td>
-</table>
-<!-- TRAILER -->
-<table border=0 cellpadding=0 cellspacing=0 width=100%>
-<tr height=15><td width=10><td><td width=10>
-<tr><td><td>
-<center>
-<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
-</center>
-</table>
-<!-- TRAILER -->
-</body></html>