Merge branch 'ganelson:master' into master

This commit is contained in:
David Kinder 2022-06-17 09:29:47 +01:00 committed by GitHub
commit f493042536
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 1453 additions and 1439 deletions

View file

@ -1,6 +1,6 @@
# Inweb 7.1.0 # Inweb 7.1.0
v7.1.0-beta+1B10 'Escape to Danger' (13 June 2022) v7.1.0-beta+1B11 'Escape to Danger' (16 June 2022)
## About Inweb ## About Inweb

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,3 @@
Prerelease: beta Prerelease: beta
Build Date: 13 June 2022 Build Date: 16 June 2022
Build Number: 1B10 Build Number: 1B11

View file

@ -198,7 +198,7 @@ thing plus a little extra, for efficiency's sake.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Str::len</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Str::len</span></span>:<br/><a href="4-sm.html#SP3">&#167;3</a>, <a href="4-sm.html#SP7">&#167;7</a>, <a href="4-sm.html#SP10">&#167;10</a>, <a href="4-sm.html#SP11">&#167;11</a>, <a href="4-sm.html#SP12">&#167;12</a>, <a href="4-sm.html#SP13">&#167;13</a>, <a href="4-sm.html#SP14">&#167;14</a>, <a href="4-sm.html#SP15">&#167;15</a>, <a href="4-sm.html#SP17">&#167;17</a>, <a href="4-sm.html#SP19">&#167;19</a>, <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP21">&#167;21</a>, <a href="4-sm.html#SP22">&#167;22</a>, <a href="4-sm.html#SP24">&#167;24</a>, <a href="4-sm.html#SP25">&#167;25</a>, <a href="4-sm.html#SP26">&#167;26</a><br/>Debugging Log - <a href="2-dl.html#SP9">&#167;9</a><br/>Command Line Arguments - <a href="3-cla.html#SP13">&#167;13</a>, <a href="3-cla.html#SP14">&#167;14</a>, <a href="3-cla.html#SP14_1">&#167;14.1</a><br/>Pathnames - <a href="3-pth.html#SP4">&#167;4</a>, <a href="3-pth.html#SP5">&#167;5</a>, <a href="3-pth.html#SP7">&#167;7</a>, <a href="3-pth.html#SP8">&#167;8</a><br/>Filenames - <a href="3-fln.html#SP2">&#167;2</a>, <a href="3-fln.html#SP3">&#167;3</a>, <a href="3-fln.html#SP5">&#167;5</a>, <a href="3-fln.html#SP8">&#167;8</a>, <a href="3-fln.html#SP9">&#167;9</a><br/>Preprocessor - <a href="4-prp.html#SP3_3">&#167;3.3</a>, <a href="4-prp.html#SP4">&#167;4</a>, <a href="4-prp.html#SP4_1_1">&#167;4.1.1</a><br/>Tries and Avinues - <a href="4-taa.html#SP2_1">&#167;2.1</a><br/>Pattern Matching - <a href="4-pm.html#SP3">&#167;3</a>, <a href="4-pm.html#SP4">&#167;4</a>, <a href="4-pm.html#SP10">&#167;10</a>, <a href="4-pm.html#SP11_3">&#167;11.3</a>, <a href="4-pm.html#SP14">&#167;14</a><br/>JSON - <a href="4-jsn.html#SP10">&#167;10</a>, <a href="4-jsn.html#SP28">&#167;28</a>, <a href="4-jsn.html#SP31">&#167;31</a>, <a href="4-jsn.html#SP36">&#167;36</a>, <a href="4-jsn.html#SP37">&#167;37</a><br/>HTML - <a href="5-htm.html#SP8">&#167;8</a>, <a href="5-htm.html#SP17">&#167;17</a>, <a href="5-htm.html#SP26">&#167;26</a><br/>Epub Ebooks - <a href="5-ee.html#SP7_1">&#167;7.1</a>, <a href="5-ee.html#SP7_2_3">&#167;7.2.3</a>, <a href="5-ee.html#SP7_2_4">&#167;7.2.4</a><br/>Version Numbers - <a href="7-vn.html#SP7">&#167;7</a>, <a href="7-vn.html#SP7_1">&#167;7.1</a>, <a href="7-vn.html#SP10">&#167;10</a><br/>Web Structure - <a href="8-ws.html#SP5_4">&#167;5.4</a>, <a href="8-ws.html#SP5_4_1">&#167;5.4.1</a>, <a href="8-ws.html#SP5_4_1_1">&#167;5.4.1.1</a>, <a href="8-ws.html#SP5_4_1_2">&#167;5.4.1.2</a>, <a href="8-ws.html#SP7_3">&#167;7.3</a>, <a href="8-ws.html#SP7_3_3_1">&#167;7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">&#167;7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">&#167;7.2.2.4</a><br/>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">&#167;5</a>, <a href="8-bdfw.html#SP6">&#167;6</a><br/>Build Files - <a href="8-bf.html#SP3">&#167;3</a>, <a href="8-bf.html#SP4">&#167;4</a>, <a href="8-bf.html#SP5">&#167;5</a>, <a href="8-bf.html#SP6">&#167;6</a>, <a href="8-bf.html#SP9">&#167;9</a><br/>Simple Tangler - <a href="8-st.html#SP7">&#167;7</a>, <a href="8-st.html#SP7_1">&#167;7.1</a>, <a href="8-st.html#SP7_2_4">&#167;7.2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Str::len</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Str::len</span></span>:<br/><a href="4-sm.html#SP3">&#167;3</a>, <a href="4-sm.html#SP7">&#167;7</a>, <a href="4-sm.html#SP10">&#167;10</a>, <a href="4-sm.html#SP11">&#167;11</a>, <a href="4-sm.html#SP12">&#167;12</a>, <a href="4-sm.html#SP13">&#167;13</a>, <a href="4-sm.html#SP14">&#167;14</a>, <a href="4-sm.html#SP15">&#167;15</a>, <a href="4-sm.html#SP17">&#167;17</a>, <a href="4-sm.html#SP19">&#167;19</a>, <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP21">&#167;21</a>, <a href="4-sm.html#SP22">&#167;22</a>, <a href="4-sm.html#SP24">&#167;24</a>, <a href="4-sm.html#SP25">&#167;25</a>, <a href="4-sm.html#SP26">&#167;26</a><br/>Debugging Log - <a href="2-dl.html#SP9">&#167;9</a><br/>Command Line Arguments - <a href="3-cla.html#SP13">&#167;13</a>, <a href="3-cla.html#SP14">&#167;14</a>, <a href="3-cla.html#SP14_1">&#167;14.1</a><br/>Pathnames - <a href="3-pth.html#SP4">&#167;4</a>, <a href="3-pth.html#SP5">&#167;5</a>, <a href="3-pth.html#SP7">&#167;7</a>, <a href="3-pth.html#SP8">&#167;8</a><br/>Filenames - <a href="3-fln.html#SP2">&#167;2</a>, <a href="3-fln.html#SP3">&#167;3</a>, <a href="3-fln.html#SP5">&#167;5</a>, <a href="3-fln.html#SP8">&#167;8</a>, <a href="3-fln.html#SP9">&#167;9</a><br/>Preprocessor - <a href="4-prp.html#SP3_3">&#167;3.3</a>, <a href="4-prp.html#SP4">&#167;4</a>, <a href="4-prp.html#SP4_1_1">&#167;4.1.1</a><br/>Tries and Avinues - <a href="4-taa.html#SP2_1">&#167;2.1</a><br/>Pattern Matching - <a href="4-pm.html#SP3">&#167;3</a>, <a href="4-pm.html#SP4">&#167;4</a>, <a href="4-pm.html#SP10">&#167;10</a>, <a href="4-pm.html#SP11_3">&#167;11.3</a>, <a href="4-pm.html#SP14">&#167;14</a><br/>JSON - <a href="4-jsn.html#SP10">&#167;10</a>, <a href="4-jsn.html#SP28">&#167;28</a>, <a href="4-jsn.html#SP31">&#167;31</a>, <a href="4-jsn.html#SP36">&#167;36</a>, <a href="4-jsn.html#SP37">&#167;37</a><br/>HTML - <a href="5-htm.html#SP8">&#167;8</a>, <a href="5-htm.html#SP17">&#167;17</a>, <a href="5-htm.html#SP20">&#167;20</a>, <a href="5-htm.html#SP26">&#167;26</a><br/>Epub Ebooks - <a href="5-ee.html#SP7_1">&#167;7.1</a>, <a href="5-ee.html#SP7_2_3">&#167;7.2.3</a>, <a href="5-ee.html#SP7_2_4">&#167;7.2.4</a><br/>Version Numbers - <a href="7-vn.html#SP7">&#167;7</a>, <a href="7-vn.html#SP7_1">&#167;7.1</a>, <a href="7-vn.html#SP10">&#167;10</a><br/>Web Structure - <a href="8-ws.html#SP5_4">&#167;5.4</a>, <a href="8-ws.html#SP5_4_1">&#167;5.4.1</a>, <a href="8-ws.html#SP5_4_1_1">&#167;5.4.1.1</a>, <a href="8-ws.html#SP5_4_1_2">&#167;5.4.1.2</a>, <a href="8-ws.html#SP7_3">&#167;7.3</a>, <a href="8-ws.html#SP7_3_3_1">&#167;7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">&#167;7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">&#167;7.2.2.4</a><br/>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">&#167;5</a>, <a href="8-bdfw.html#SP6">&#167;6</a><br/>Build Files - <a href="8-bf.html#SP3">&#167;3</a>, <a href="8-bf.html#SP4">&#167;4</a>, <a href="8-bf.html#SP5">&#167;5</a>, <a href="8-bf.html#SP6">&#167;6</a>, <a href="8-bf.html#SP9">&#167;9</a><br/>Simple Tangler - <a href="8-st.html#SP7">&#167;7</a>, <a href="8-st.html#SP7_1">&#167;7.1</a>, <a href="8-st.html#SP7_2_4">&#167;7.2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-str.html#SP38" class="function-link"><span class="function-syntax">Streams::get_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-str.html#SP38" class="function-link"><span class="function-syntax">Streams::get_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>

View file

@ -593,30 +593,25 @@ can be removed. None of that removal happens here; we're just the bookkeeper.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::begin_html_table</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">HTML::begin_html_table</span></span>:<br/><a href="5-htm.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_width</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::begin_html_table</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">HTML::begin_html_table</span></span>:<br/><a href="5-htm.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_width</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">"border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\""</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">"border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">classname</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" class=\"%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">colour</span><span class="plain-syntax"> == </span><span class="character-syntax">'*'</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" style=\"background-image:url('inform:/%s');\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour</span><span class="plain-syntax">+1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" bgcolor=\"%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">full_width</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=100%%"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">full_width</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=100%%"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">height</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" height=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">height</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" height=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"table"</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"table"</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::begin_html_table_bg</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_width</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::begin_html_table_bg</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_width</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bg</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">"border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\""</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">"border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellspacing</span><span class="plain-syntax">, </span><span class="identifier-syntax">cellpadding</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" background=\"inform:/map_icons/%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">bg</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bg</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" background=\"inform:/%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">bg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" bgcolor=\"%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">classname</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" class=\"%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">full_width</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=100%%"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">full_width</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=100%%"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">height</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" height=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">height</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="string-syntax">" height=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax">);</span>
@ -628,8 +623,11 @@ can be removed. None of that removal happens here; we're just the bookkeeper.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"align=\"left\" valign=\"top\" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"align=\"left\" valign=\"top\" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"align=\"left\" valign=\"top\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"align=\"left\" valign=\"top\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::first_html_column_nowrap</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::first_html_column_nowrap</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">, </span><span class="string-syntax">"bgcolor=\"%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour</span><span class="plain-syntax">) </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">classname</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">"style=\"white-space:nowrap;\" align=\"left\" valign=\"top\" height=\"20\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">"style=\"white-space:nowrap;\" align=\"left\" valign=\"top\" height=\"20\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span>
@ -644,8 +642,12 @@ can be removed. None of that removal happens here; we're just the bookkeeper.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::first_html_column_coloured</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::first_html_column_coloured</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">, </span><span class="string-syntax">"bgcolor=\"%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour</span><span class="plain-syntax">) </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">classname</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">"nowrap=\"nowrap\" align=\"left\" valign=\"top\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">"nowrap=\"nowrap\" align=\"left\" valign=\"top\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">width</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="string-syntax">" width=\"%d\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">width</span><span class="plain-syntax">);</span>
@ -715,18 +717,18 @@ can be removed. None of that removal happens here; we're just the bookkeeper.
<span class="definition-keyword">define</span> <span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span> <span class="definition-keyword">define</span> <span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::open_coloured_box</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rounding</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::open_coloured_box</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rounding</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"table"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"table"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"width=\"100%%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" "</span> <span class="plain-syntax"> </span><span class="string-syntax">"width=\"100%%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"style=\"background-color: #%s\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">"class=\"%S\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_TOP</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="string-syntax">"tl"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_TOP</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"tl"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_TOP</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_TOP</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
@ -735,29 +737,29 @@ can be removed. None of that removal happens here; we're just the bookkeeper.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::close_coloured_box</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rounding</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::close_coloured_box</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rounding</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="string-syntax">"bl"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"bl"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"width=\"%d\""</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">ROUND_BOX_BOTTOM</span><span class="plain-syntax">) </span><a href="5-htm.html#SP21" class="function-link"><span class="function-syntax">HTML::box_corner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-htm.html#SP20" class="function-link"><span class="function-syntax">HTML::end_html_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-htm.html#SP20" class="function-link"><span class="function-syntax">HTML::end_html_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::box_corner</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">corner</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTML::box_corner</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">corner</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"src=\"inform:/bg_images/%s_corner_%s.gif\" "</span> <span class="plain-syntax"> </span><span class="string-syntax">"src=\"inform:/bg_images/%S_corner_%S.gif\" "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"width=\"%d\" height=\"%d\" border=\"0\" alt=\"...\""</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="string-syntax">"width=\"%d\" height=\"%d\" border=\"0\" alt=\"...\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">corner</span><span class="plain-syntax">, </span><span class="identifier-syntax">html_colour</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">corner</span><span class="plain-syntax">, </span><span class="identifier-syntax">classname</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">CORNER_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Miscellaneous. </b></p> <p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Miscellaneous. </b></p>

Binary file not shown.

View file

@ -528,30 +528,25 @@ void HTML::begin_wide_html_table(OUTPUT_STREAM) {
@ And some more general code: @ And some more general code:
= =
void HTML::begin_html_table(OUTPUT_STREAM, char *colour, int full_width, void HTML::begin_html_table(OUTPUT_STREAM, text_stream *classname, int full_width,
int border, int cellspacing, int cellpadding, int height, int width) { int border, int cellspacing, int cellpadding, int height, int width) {
TEMPORARY_TEXT(tab) TEMPORARY_TEXT(tab)
WRITE_TO(tab, "border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\"", WRITE_TO(tab, "border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\"",
border, cellspacing, cellpadding); border, cellspacing, cellpadding);
if (colour) { if (Str::len(classname) > 0) WRITE_TO(tab, " class=\"%S\"", classname);
if (*colour == '*')
WRITE_TO(tab, " style=\"background-image:url('inform:/%s');\"", colour+1);
else
WRITE_TO(tab, " bgcolor=\"%s\"", colour);
}
if (full_width) WRITE_TO(tab, " width=100%%"); if (full_width) WRITE_TO(tab, " width=100%%");
if (width > 0) WRITE_TO(tab, " width=\"%d\"", width); if (width > 0) WRITE_TO(tab, " width=\"%d\"", width);
if (height > 0) WRITE_TO(tab, " height=\"%d\"", height); if (height > 0) WRITE_TO(tab, " height=\"%d\"", height);
HTML_OPEN_WITH("table", "%S", tab); HTML_OPEN_WITH("table", "%S", tab);
DISCARD_TEXT(tab) DISCARD_TEXT(tab)
} }
void HTML::begin_html_table_bg(OUTPUT_STREAM, char *colour, int full_width, void HTML::begin_html_table_bg(OUTPUT_STREAM, text_stream *classname, int full_width,
int border, int cellspacing, int cellpadding, int height, int width, char *bg) { int border, int cellspacing, int cellpadding, int height, int width, text_stream *bg) {
TEMPORARY_TEXT(tab) TEMPORARY_TEXT(tab)
WRITE_TO(tab, "border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\"", WRITE_TO(tab, "border=\"%d\" cellspacing=\"%d\" cellpadding=\"%d\"",
border, cellspacing, cellpadding); border, cellspacing, cellpadding);
if (bg) WRITE_TO(tab, " background=\"inform:/map_icons/%s\"", bg); if (Str::len(bg) > 0) WRITE_TO(tab, " background=\"inform:/%S\"", bg);
if (colour) WRITE_TO(tab, " bgcolor=\"%s\"", colour); if (Str::len(classname) > 0) WRITE_TO(tab, " class=\"%S\"", classname);
if (full_width) WRITE_TO(tab, " width=100%%"); if (full_width) WRITE_TO(tab, " width=100%%");
if (width > 0) WRITE_TO(tab, " width=\"%d\"", width); if (width > 0) WRITE_TO(tab, " width=\"%d\"", width);
if (height > 0) WRITE_TO(tab, " height=\"%d\"", height); if (height > 0) WRITE_TO(tab, " height=\"%d\"", height);
@ -563,8 +558,11 @@ void HTML::first_html_column(OUTPUT_STREAM, int width) {
if (width > 0) HTML_OPEN_WITH("td", "align=\"left\" valign=\"top\" width=\"%d\"", width) if (width > 0) HTML_OPEN_WITH("td", "align=\"left\" valign=\"top\" width=\"%d\"", width)
else HTML_OPEN_WITH("td", "align=\"left\" valign=\"top\""); else HTML_OPEN_WITH("td", "align=\"left\" valign=\"top\"");
} }
void HTML::first_html_column_nowrap(OUTPUT_STREAM, int width, char *colour) { void HTML::first_html_column_nowrap(OUTPUT_STREAM, int width, text_stream *classname) {
if (colour) HTML_OPEN_WITH("tr", "bgcolor=\"%s\"", colour) else HTML_OPEN("tr"); if (Str::len(classname) > 0)
HTML_OPEN_WITH("tr", "class=\"%S\"", classname)
else
HTML_OPEN("tr");
TEMPORARY_TEXT(col) TEMPORARY_TEXT(col)
WRITE_TO(col, "style=\"white-space:nowrap;\" align=\"left\" valign=\"top\" height=\"20\""); WRITE_TO(col, "style=\"white-space:nowrap;\" align=\"left\" valign=\"top\" height=\"20\"");
if (width > 0) WRITE_TO(col, " width=\"%d\"", width); if (width > 0) WRITE_TO(col, " width=\"%d\"", width);
@ -579,8 +577,12 @@ void HTML::first_html_column_spaced(OUTPUT_STREAM, int width) {
HTML_OPEN_WITH("td", "%S", col); HTML_OPEN_WITH("td", "%S", col);
DISCARD_TEXT(col) DISCARD_TEXT(col)
} }
void HTML::first_html_column_coloured(OUTPUT_STREAM, int width, char *colour, int cs) { void HTML::first_html_column_coloured(OUTPUT_STREAM, int width, text_stream *classname,
if (colour) HTML_OPEN_WITH("tr", "bgcolor=\"%s\"", colour) else HTML_OPEN("tr"); int cs) {
if (Str::len(classname) > 0)
HTML_OPEN_WITH("tr", "class=\"%S\"", classname)
else
HTML_OPEN("tr");
TEMPORARY_TEXT(col) TEMPORARY_TEXT(col)
WRITE_TO(col, "nowrap=\"nowrap\" align=\"left\" valign=\"top\""); WRITE_TO(col, "nowrap=\"nowrap\" align=\"left\" valign=\"top\"");
if (width > 0) WRITE_TO(col, " width=\"%d\"", width); if (width > 0) WRITE_TO(col, " width=\"%d\"", width);
@ -650,18 +652,18 @@ void HTML::end_html_table(OUTPUT_STREAM) {
@d ROUND_BOX_BOTTOM 2 @d ROUND_BOX_BOTTOM 2
= =
void HTML::open_coloured_box(OUTPUT_STREAM, char *html_colour, int rounding) { void HTML::open_coloured_box(OUTPUT_STREAM, text_stream *classname, int rounding) {
HTML_OPEN_WITH("table", HTML_OPEN_WITH("table",
"width=\"100%%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" " "width=\"100%%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" "
"style=\"background-color: #%s\"", html_colour); "class=\"%S\"", classname);
HTML_OPEN("tr"); HTML_OPEN("tr");
HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE); HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE);
if (rounding & ROUND_BOX_TOP) HTML::box_corner(OUT, html_colour, "tl"); if (rounding & ROUND_BOX_TOP) HTML::box_corner(OUT, classname, I"tl");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_OPEN("td"); HTML_OPEN("td");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE); HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE);
if (rounding & ROUND_BOX_TOP) HTML::box_corner(OUT, html_colour, "tr"); if (rounding & ROUND_BOX_TOP) HTML::box_corner(OUT, classname, I"tr");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_CLOSE("tr"); HTML_CLOSE("tr");
HTML_OPEN("tr"); HTML_OPEN("tr");
@ -670,29 +672,29 @@ void HTML::open_coloured_box(OUTPUT_STREAM, char *html_colour, int rounding) {
HTML_OPEN("td"); HTML_OPEN("td");
} }
void HTML::close_coloured_box(OUTPUT_STREAM, char *html_colour, int rounding) { void HTML::close_coloured_box(OUTPUT_STREAM, text_stream *classname, int rounding) {
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE); HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE);
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_CLOSE("tr"); HTML_CLOSE("tr");
HTML_OPEN("tr"); HTML_OPEN("tr");
HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE); HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE);
if (rounding & ROUND_BOX_BOTTOM) HTML::box_corner(OUT, html_colour, "bl"); if (rounding & ROUND_BOX_BOTTOM) HTML::box_corner(OUT, classname, I"bl");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_OPEN("td"); HTML_OPEN("td");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE); HTML_OPEN_WITH("td", "width=\"%d\"", CORNER_SIZE);
if (rounding & ROUND_BOX_BOTTOM) HTML::box_corner(OUT, html_colour, "br"); if (rounding & ROUND_BOX_BOTTOM) HTML::box_corner(OUT, classname, I"br");
HTML_CLOSE("td"); HTML_CLOSE("td");
HTML_CLOSE("tr"); HTML_CLOSE("tr");
HTML::end_html_table(OUT); HTML::end_html_table(OUT);
} }
void HTML::box_corner(OUTPUT_STREAM, char *html_colour, char *corner) { void HTML::box_corner(OUTPUT_STREAM, text_stream *classname, text_stream *corner) {
HTML_TAG_WITH("img", HTML_TAG_WITH("img",
"src=\"inform:/bg_images/%s_corner_%s.gif\" " "src=\"inform:/bg_images/%S_corner_%S.gif\" "
"width=\"%d\" height=\"%d\" border=\"0\" alt=\"...\"", "width=\"%d\" height=\"%d\" border=\"0\" alt=\"...\"",
corner, html_colour, CORNER_SIZE, CORNER_SIZE); corner, classname, CORNER_SIZE, CORNER_SIZE);
} }
@h Miscellaneous. @h Miscellaneous.