mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
Documenting and tidying up C
This commit is contained in:
parent
51f17e92a6
commit
da9151f1f5
|
@ -74,7 +74,6 @@ before it is known how they will be used.
|
|||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">Main</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VM_Initialise</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">INITIALISE_MEMORY_R</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SEED_RANDOM_NUMBER_GENERATOR_R</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Submain</span><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -73,7 +73,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">arch</a></li><li><a href="index.html#2">Chapter 2: Architectures and VMs</a></li><li><b>Target Virtual Machines</b></li></ul></div>
|
||||
<p class="purpose">To deal with multiple object code formats.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-tvm.html#SP1">§1. Target VMs</a></li><li><a href="2-tvm.html#SP5">§5. To and from text</a></li><li><a href="2-tvm.html#SP9">§9. Architectural provisions</a></li><li><a href="2-tvm.html#SP10">§10. File extension provisions</a></li><li><a href="2-tvm.html#SP13">§13. Family compatibility</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-tvm.html#SP1">§1. Target VMs</a></li><li><a href="2-tvm.html#SP5">§5. To and from text</a></li><li><a href="2-tvm.html#SP9">§9. Architectural provisions</a></li><li><a href="2-tvm.html#SP10">§10. File extension provisions</a></li><li><a href="2-tvm.html#SP13">§13. Family compatibility</a></li><li><a href="2-tvm.html#SP14">§14. Ootions</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Target VMs. </b>For a fuller explanation of these, see <a href="P-wtmd.html" class="internal">What This Module Does</a>, but briefly:
|
||||
a <a href="2-tvm.html#SP2" class="internal">target_vm</a> object represents a choice of both Inter architecture and
|
||||
|
@ -529,6 +529,15 @@ but here we do at least match whether a given <span class="extract"><span class=
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Ootions. </b>Final code-generators can call this to see what special requests were made.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TargetVMs::option_list</span><span class="plain-syntax">(</span><span class="reserved-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</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">VM</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no VM"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VM</span><span class="plain-syntax">-></span><span class="element-syntax">format_options</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-arc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-am.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-arc.html">arc</a></li><li class="progresscurrent">tvm</li><li class="progresssection"><a href="2-cmp.html">cmp</a></li><li class="progressnext"><a href="2-cmp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -114,9 +114,9 @@ easy.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setrandom</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setrandom</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
|
@ -125,7 +125,7 @@ easy.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">random</span><span class="Extracts-plain-syntax">() << </span><span class="Extracts-constant-syntax">16</span><span class="Extracts-plain-syntax">) ^ </span><span class="Extracts-identifier-syntax">random</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">uint32_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">value</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">value</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_random</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">else</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">value</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_random</span><span class="Extracts-plain-syntax">() % (</span><span class="Extracts-identifier-syntax">uint32_t</span><span class="Extracts-plain-syntax">) (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -133,7 +133,7 @@ easy.
|
|||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = (</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">value</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">r</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_random</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, &</span><span class="Extracts-identifier-syntax">r</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">r</span><span class="Extracts-plain-syntax">+1;</span>
|
||||
|
@ -141,7 +141,7 @@ easy.
|
|||
|
||||
<span class="Extracts-plain-syntax">/* </span><span class="Extracts-identifier-syntax">Set</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">the</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">random</span><span class="Extracts-plain-syntax">-</span><span class="Extracts-identifier-syntax">number</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seed</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">zero</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">means</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">use</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">as</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">random</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">a</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">source</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">as</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">possible</span><span class="Extracts-plain-syntax">. */</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setrandom</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setrandom</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">uint32_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seed</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> *((</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *) &</span><span class="Extracts-identifier-syntax">seed</span><span class="Extracts-plain-syntax">) = </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">seed</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">seed</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">time</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -162,63 +162,63 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_add</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_neg</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_add</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_neg</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">typedef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">gfloat32</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">gfloat32</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">gfloat32</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_exp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fadd</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fdiv</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_floor</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fsub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumn</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_numtof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfne</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfge</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jflt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisnan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_log</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_acos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_asin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_atan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ceil</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_cos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_pow</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sqrt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_tan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_exp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fadd</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fdiv</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_floor</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fsub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumn</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_numtof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfne</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfge</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jflt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisnan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_log</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_acos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_asin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_atan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ceil</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_cos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_pow</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sqrt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_tan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_add</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_add</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> + </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_neg</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_neg</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = -</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> * </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Division</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">by</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax">; }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">ax</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">ay</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> /* </span><span class="Extracts-identifier-syntax">Since</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">C</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">doesn</span><span class="Extracts-plain-syntax">'</span><span class="Extracts-identifier-syntax">t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">guarantee</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">the</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">results</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">division</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">negative</span>
|
||||
|
@ -247,13 +247,13 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_div</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, &</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Division</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">by</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax">; }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">ax</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">ay</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -271,7 +271,7 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod_r</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, &</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -289,23 +289,23 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">res</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_exp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_exp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">expf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fadd</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fadd</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) + </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fdiv</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fdiv</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) / </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_floor</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_floor</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">floorf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmod</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fy</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fquot</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">fmodf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fy</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -321,15 +321,15 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">w</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">rem</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fmul</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) * </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fsub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_fsub</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) - </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumn</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumn</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (!</span><span class="Extracts-identifier-syntax">signbit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
|
@ -347,7 +347,7 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ftonumz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (!</span><span class="Extracts-identifier-syntax">signbit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">fx</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
|
@ -365,11 +365,11 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_numtof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_numtof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">((</span><span class="Extracts-identifier-syntax">float</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax"> && (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x007FFFFF</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> /* </span><span class="Extracts-identifier-syntax">The</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">delta</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">is</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">NaN</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">which</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">can</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">never</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">match</span><span class="Extracts-plain-syntax">. */</span>
|
||||
|
@ -388,7 +388,7 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfne</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfne</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax"> && (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x007FFFFF</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> /* </span><span class="Extracts-identifier-syntax">The</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">delta</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">is</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">NaN</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">which</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">can</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">never</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">match</span><span class="Extracts-plain-syntax">. */</span>
|
||||
|
@ -407,51 +407,51 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfge</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jfge</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) >= </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jflt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jflt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) < </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax"> || </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">xFF800000</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisnan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jisnan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x7F800000</span><span class="Extracts-plain-syntax"> && (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x007FFFFF</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_log</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_log</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">logf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_acos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_acos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">acosf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_asin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_asin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">asinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_atan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_atan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">atanf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ceil</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ceil</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">ceilf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_cos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_cos</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">cosf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_pow</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_pow</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">.0</span><span class="Extracts-identifier-syntax">f</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(1.0</span><span class="Extracts-identifier-syntax">f</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">else</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">.0</span><span class="Extracts-identifier-syntax">f</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) == -0.0</span><span class="Extracts-identifier-syntax">f</span><span class="Extracts-plain-syntax">))</span>
|
||||
|
@ -462,15 +462,15 @@ storing <span class="extract"><span class="Extracts-extract-syntax">float</span>
|
|||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">powf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">), </span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sin</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">sinf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sqrt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_sqrt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">sqrtf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_tan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_tan</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">encode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">tanf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">decode_float</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">)));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -95,8 +95,8 @@ function togglePopup(material_id) {
|
|||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_debug_stack</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">N</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_pull</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_push</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_pull</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_push</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
|
@ -108,12 +108,12 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">// </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_pull</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_pull</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack_pointer</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Stack</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">underflow</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("%</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">/</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">; }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack</span><span class="Extracts-plain-syntax">[--(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack_pointer</span><span class="Extracts-plain-syntax">)];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_push</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_push</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack_pointer</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7_ASM_STACK_CAPACITY</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Stack</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">overflow</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax">; }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">stack_pointer</span><span class="Extracts-plain-syntax">++] = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
@ -220,122 +220,122 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelfunc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelparam</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_copy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_gestalt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_nop</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jleu</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jnz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_quit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setiosys</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamchar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamnum</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamstr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamunichar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ushiftr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aload</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloadb</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelfunc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelparam</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_copy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_gestalt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_nop</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jleu</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jnz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_quit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setiosys</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamchar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamnum</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamstr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamunichar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ushiftr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aload</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloadb</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">serop_KeyIndirect</span><span class="Extracts-plain-syntax"> (0</span><span class="Extracts-identifier-syntax">x01</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">serop_ZeroKeyTerminates</span><span class="Extracts-plain-syntax"> (0</span><span class="Extracts-identifier-syntax">x02</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">serop_ReturnIndex</span><span class="Extracts-plain-syntax"> (0</span><span class="Extracts-identifier-syntax">x04</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_binarysearch</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">start</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structsize</span><span class="Extracts-plain-syntax">,</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_binarysearch</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">start</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structsize</span><span class="Extracts-plain-syntax">,</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">numstructs</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keyoffset</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">options</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s1</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_shiftl</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restoreundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_saveundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restart</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restore</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_save</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_verify</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_hasundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_discardundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_shiftl</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restoreundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_saveundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restart</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restore</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_save</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_verify</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_hasundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_discardundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelfunc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) { /* </span><span class="Extracts-identifier-syntax">Intentionally</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ignore</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelfunc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) { /* </span><span class="Extracts-identifier-syntax">Intentionally</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ignore</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelparam</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) { /* </span><span class="Extracts-identifier-syntax">Intentionally</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ignore</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_accelparam</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) { /* </span><span class="Extracts-identifier-syntax">Intentionally</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ignore</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_copy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_copy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_debug_stack</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">glulx_copy</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_gestalt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_gestalt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jeq</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_nop</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_nop</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jleu</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jleu</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7uval</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ux</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">uy</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> *((</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *) &</span><span class="Extracts-identifier-syntax">ux</span><span class="Extracts-plain-syntax">) = </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">; *((</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *) &</span><span class="Extracts-identifier-syntax">uy</span><span class="Extracts-plain-syntax">) = </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">ux</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-identifier-syntax">uy</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jnz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jnz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> != </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_jz</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_quit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_quit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setiosys</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_setiosys</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> // </span><span class="Extracts-identifier-syntax">Deliberately</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ignored</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">we</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">are</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">using</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glk</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamchar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamchar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamnum</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamnum</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamstr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamstr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_streamstr</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamunichar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_streamunichar</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ushiftr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_ushiftr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_ushiftr</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aload</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aload</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_aload</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloadb</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloadb</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_aloadb</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fetchkey</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">unsigned</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">keybuf</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">options</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fetchkey</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">unsigned</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">keybuf</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">options</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax">{</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ix</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
|
@ -364,7 +364,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_binarysearch</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">start</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structsize</span><span class="Extracts-plain-syntax">,</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_binarysearch</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">key</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keysize</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">start</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structsize</span><span class="Extracts-plain-syntax">,</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">numstructs</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keyoffset</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">options</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s1</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">s1</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">unsigned</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">keybuf</span><span class="Extracts-plain-syntax">[4];</span>
|
||||
|
@ -425,12 +425,12 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s1</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_shiftl</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_shiftl</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_shiftl</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restoreundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restoreundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">just_undid</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -443,37 +443,37 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_saveundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_saveundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">just_undid</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_save_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_hasundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_hasundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_discardundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_discardundo</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_latest_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restart</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restart</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_restart</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restore</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_restore</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_restore</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_save</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_save</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_save</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_verify</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_verify</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_verify</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
|
|
@ -107,7 +107,7 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CFunctionModel::end</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CFunctionModel::end</span></span>:<br/>Final C - <a href="5-fnc.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="constant-syntax">c_stubs_at_eof_I7CGS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val i7_gen_call(i7process *proc, i7val fn_ref, i7val *args, int argc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val i7_gen_call(i7process_t *proc, i7val fn_ref, i7val *args, int argc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"int ssp = proc->state.stack_pointer;\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val rv = 0;\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"switch (fn_ref) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
|
@ -183,14 +183,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">prototype</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">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">prototype</span><span class="plain-syntax">), </span><span class="string-syntax">"i7val fn_"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnm.html#SP1" class="function-link"><span class="function-syntax">CNamespace::mangle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="identifier-syntax">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">prototype</span><span class="plain-syntax">), </span><span class="identifier-syntax">fn_name</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">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">prototype</span><span class="plain-syntax">), </span><span class="string-syntax">"(i7process *proc"</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">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">prototype</span><span class="plain-syntax">), </span><span class="string-syntax">"(i7process_t *proc"</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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C_GEN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">fndata</span><span class="plain-syntax">.</span><span class="element-syntax">current_fcf</span><span class="plain-syntax">) = </span><span class="identifier-syntax">RETRIEVE_POINTER_final_c_function</span><span class="plain-syntax">(</span><span class="identifier-syntax">fn</span><span class="plain-syntax">-></span><span class="identifier-syntax">translation_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val fn_"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnm.html#SP1" class="function-link"><span class="function-syntax">CNamespace::mangle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">fn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(i7process *proc"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(i7process_t *proc"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -325,27 +325,27 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_4</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_5</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v5</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_4</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_5</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v5</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_0</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">saved</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_var_self</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_var_self</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -355,13 +355,13 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_1</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">saved</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_var_self</span><span class="Extracts-plain-syntax">];</span>
|
||||
|
@ -372,13 +372,13 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">saved</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_var_self</span><span class="Extracts-plain-syntax">];</span>
|
||||
|
@ -389,13 +389,13 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[2] = </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">3</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mcall_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[2] = </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">saved</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_var_self</span><span class="Extracts-plain-syntax">];</span>
|
||||
|
@ -406,19 +406,19 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_4</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_4</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[2] = </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[3] = </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">4</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_5</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v5</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_call_5</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">v5</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[0] = </span><span class="Extracts-identifier-syntax">v</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[1] = </span><span class="Extracts-identifier-syntax">v2</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[2] = </span><span class="Extracts-identifier-syntax">v3</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[3] = </span><span class="Extracts-identifier-syntax">v4</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[4] = </span><span class="Extracts-identifier-syntax">v5</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">5</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[10]; </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><10; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_pull</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_gen_call</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fn_ref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
|
|
@ -121,8 +121,8 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_roman</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">2</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_underline</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">3</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_reverse</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">4</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_style</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_font</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_style</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_font</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileusage_Data</span><span class="Extracts-plain-syntax"> (0</span><span class="Extracts-identifier-syntax">x00</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileusage_SavedGame</span><span class="Extracts-plain-syntax"> (0</span><span class="Extracts-identifier-syntax">x01</span><span class="Extracts-plain-syntax">)</span>
|
||||
|
@ -146,14 +146,14 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7_fileref</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_create_by_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">name</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fseek</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">origin</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ftell</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fclose</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_does_file_exist</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fgetc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_create_by_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">name</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fseek</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">origin</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ftell</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fclose</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_does_file_exist</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fgetc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">typedef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">struct</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">to_file</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -171,21 +171,21 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">end_position</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owned_by_window_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_style</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_style</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_font</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_font</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">what</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7_fileref</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[128 + </span><span class="Extracts-constant-syntax">32</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_no_filerefs</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_create_by_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">name</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_create_by_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">name</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_no_filerefs</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">streams</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> }</span>
|
||||
|
@ -204,20 +204,20 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fseek</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">origin</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fseek</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">origin</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fseek</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">origin</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ftell</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ftell</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">t</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">ftell</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">t</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">already</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">c_mode</span><span class="Extracts-plain-syntax"> = "</span><span class="Extracts-identifier-syntax">r</span><span class="Extracts-plain-syntax">";</span>
|
||||
|
@ -234,7 +234,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fclose</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fclose</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fclose</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -242,7 +242,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_does_file_exist</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_fileref_does_file_exist</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">filemode_Read</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
|
@ -251,13 +251,13 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fgetc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fgetc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Too</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">many</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">files</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">File</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">open</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">fgetc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">filerefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">handle</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -270,16 +270,16 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stdout_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_stderr_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_str_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_str_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_str_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">to_file</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax"> = -1;</span>
|
||||
|
@ -298,42 +298,40 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">owned_by_window_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">i7_receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">) = </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.c.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory_uni</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_file</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory_uni</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_file</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode_Start</span><span class="Extracts-plain-syntax"> (0)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode_Current</span><span class="Extracts-plain-syntax"> (1)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode_End</span><span class="Extracts-plain-syntax"> (2)</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_close</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_close</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">typedef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">struct</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_winref</span><span class="Extracts-plain-syntax"> {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">type</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7_winref</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_window_open</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">split</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">method</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">size</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">wintype</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rock_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_to_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_put_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_get_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_C_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_window_open</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">split</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">method</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">size</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">wintype</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rock_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_to_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_put_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_get_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_C_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_stdout_id</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_stdout_id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">active</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -342,10 +340,9 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_stderr_id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">active</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_stderr_id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">encode_UTF8</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_current</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_stdout_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_receiver</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">FILE</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">active</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_new_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">F</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -357,7 +354,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax"> != </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Only</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">file</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">supported</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">write_here_on_closure</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -367,7 +364,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory_uni</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_memory_uni</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax"> != </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Only</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">file</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">mode</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">supported</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">fmode</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">write_here_on_closure</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -377,14 +374,14 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_file</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_open_file</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_open_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_fopen</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">fileref</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">usage</span><span class="Extracts-plain-syntax">) == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_set_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pos</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">seekmode</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax"> = &(</span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -401,7 +398,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_get_position</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax"> = &(</span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -410,7 +407,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">memory_used</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_close</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_stream_close</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">result</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7_MAX_STREAMS</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Stream</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Cannot</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">close</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Cannot</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">close</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
|
@ -447,7 +444,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-identifier-syntax">i7_winref</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">winrefs</span><span class="Extracts-plain-syntax">[128];</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_no_winrefs</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_window_open</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">split</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">method</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">size</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">wintype</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_window_open</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">split</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">method</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">size</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">wintype</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_no_winrefs</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">128</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">windows</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> }</span>
|
||||
|
@ -458,22 +455,22 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_no_winrefs</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Window</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">winrefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rock_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rock_of_window</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_no_winrefs</span><span class="Extracts-plain-syntax">)) { </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">Window</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">ID</span><span class="Extracts-plain-syntax"> %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">out</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">of</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">range</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">); }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">winrefs</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_to_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_receiver</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">i7_receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_to_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">rock</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_put_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_put_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax"> = &(</span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">to_file</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">owned_by_window_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -509,7 +506,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_get_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_get_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_stream</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax"> = &(</span><span class="Extracts-identifier-syntax">i7_memory_streams</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">stream_id</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">to_file_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">chars_read</span><span class="Extracts-plain-syntax">++;</span>
|
||||
|
@ -518,17 +515,17 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_put_char_stream</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_str_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_C_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_C_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">]; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_char</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, (</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">c_string</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">room</span><span class="Extracts-plain-syntax">[32];</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">sprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">room</span><span class="Extracts-plain-syntax">, "%</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">", (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_C_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">room</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -553,10 +550,10 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val2</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">i7_next_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_make_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_select</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structure</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_request_line_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">window_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">max_len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">init_len</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">i7_next_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_make_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_select</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structure</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_request_line_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">window_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">max_len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">init_len</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_exit</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x0001</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_set_interrupt_handler</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x0002</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_tick</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x0003</span>
|
||||
|
@ -680,35 +677,35 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_date_to_time_local</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x016D</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_date_to_simple_time_utc</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x016E</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_date_to_simple_time_local</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x016F</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_glk</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glk_api_selector</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_IndefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_DefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CIndefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CDefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_PrintShortName</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_object</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_box</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_glk</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glk_api_selector</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_IndefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_DefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CIndefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CDefArt</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_PrintShortName</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_local_i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_object</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_box</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_events_ring_buffer</span><span class="Extracts-plain-syntax">[32];</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">i7_next_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">i7_next_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax"> = &(</span><span class="Extracts-identifier-syntax">i7_events_ring_buffer</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax">]);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax">++; </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">32</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">i7_rb_back</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_make_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_make_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_events_ring_buffer</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax">++; </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">32</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">i7_rb_front</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_select</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structure</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_select</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">structure</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_next_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">, "</span><span class="Extracts-identifier-syntax">No</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">events</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">available</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">select</span><span class="Extracts-plain-syntax">\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">"); </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -730,7 +727,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_no_lr</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_request_line_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">window_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">max_len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">init_len</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_do_glk_request_line_event</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">window_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">buffer</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">max_len</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">init_len</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_glk_event</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">type</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">evtype_LineInput</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">e</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">win_id</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">window_id</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -752,7 +749,7 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_glk</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glk_api_selector</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_glk</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glk_api_selector</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_debug_stack</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">glulx_glk</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">args</span><span class="Extracts-plain-syntax">[5] = { </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax"> }, </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">while</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">varargc</span><span class="Extracts-plain-syntax"> > </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -838,25 +835,25 @@ function togglePopup(material_id) {
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">rv</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_name</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_PrintShortName</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_object</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_object</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_decimal</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_box</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_box</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">i7_print_box</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Only</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">available</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">on</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">16</span><span class="Extracts-plain-syntax">-</span><span class="Extracts-identifier-syntax">bit</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">architectures</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">which</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">this</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">is</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">not</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">i7_read</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_pending_boxed_quotation</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_pending_boxed_quotation</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -812,12 +812,12 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_dword</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">at</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_dword</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">at</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">i7_text_of_string</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">str</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_dword</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">at</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_print_dword</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">at</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=1; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><=9; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">at</span><span class="Extracts-plain-syntax">+</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">break</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
|
|
@ -158,12 +158,12 @@ in C.
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initial_memory</span><span class="Extracts-plain-syntax">[];</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax"> != </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">free</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">mem</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">calloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7_static_himem</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">sizeof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">mem</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -225,16 +225,16 @@ challenging since we need to pack and unpack them.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">data</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">byte_position</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax"> + </span><span class="Extracts-constant-syntax">4</span><span class="Extracts-plain-syntax">*</span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">byte_position</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">byte_position</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_static_himem</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
|
@ -258,16 +258,16 @@ express a packed word in constant context, which we will need later.
|
|||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">I7BYTE_2</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">V</span><span class="Extracts-plain-syntax">) ((</span><span class="Extracts-identifier-syntax">V</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x0000FF00</span><span class="Extracts-plain-syntax">) >> </span><span class="Extracts-constant-syntax">8</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">I7BYTE_3</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">V</span><span class="Extracts-plain-syntax">) (</span><span class="Extracts-identifier-syntax">V</span><span class="Extracts-plain-syntax"> & </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x000000FF</span><span class="Extracts-plain-syntax">)</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">old_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">switch</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -282,7 +282,7 @@ express a packed word in constant context, which we will need later.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return_val</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">data</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">old_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">array_address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">array_index</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -311,11 +311,11 @@ express a packed word in constant context, which we will need later.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloads</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloads</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloads</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_aloads</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) *</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-identifier-syntax">x100</span><span class="Extracts-plain-syntax">*((</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">+2*</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">)) + ((</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">+2*</span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">+1));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -324,13 +324,13 @@ express a packed word in constant context, which we will need later.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mcopy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_malloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mfree</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mcopy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_malloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mfree</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mcopy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mcopy</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">+</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">+</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">));</span>
|
||||
|
@ -339,12 +339,12 @@ express a packed word in constant context, which we will need later.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">z</span><span class="Extracts-plain-syntax">+</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_read_byte</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">+</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_malloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_malloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">y</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_malloc</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mfree</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">glulx_mfree</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">Unimplemented</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">glulx_mfree</span><span class="Extracts-plain-syntax">.\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
|
|
@ -325,12 +325,12 @@ an ID belongs to: 0, <span class="extract"><span class="extract-syntax">Class</s
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ofclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ofclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7VAL_FUNCTIONS_BASE</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_Routine</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7VAL_STRINGS_BASE</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_mgl_String</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -345,7 +345,7 @@ as it <span class="extract"><span class="Extracts-extract-syntax">i7_ofclass(B,
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ofclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_ofclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">I7VAL_FUNCTIONS_BASE</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">cl_id</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">i7_mgl_Routine</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -464,7 +464,7 @@ not deriving from an Inform program.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val fn_i7_mgl_CreatePropertyOffsets(i7process *proc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7val fn_i7_mgl_CreatePropertyOffsets(i7process_t *proc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"for (int i=0; i<i7_mgl_attributed_property_offsets_SIZE; i++)\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7_write_word(proc, i7_mgl_attributed_property_offsets, i, -1, i7_lvalue_SET);\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">OUTDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"for (int i=0; i<i7_mgl_valued_property_offsets_SIZE; i++)\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
|
@ -506,7 +506,7 @@ initialiser function which runs early and sets the property values up by hand:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="constant-syntax">c_initialiser_I7CGS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"void i7_initializer(i7process *proc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"void i7_initializer(i7process_t *proc) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"for (int id=0; id<i7_max_objects; id++) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"for (int p=0; p<i7_no_property_ids; p++) {\n"</span><span class="plain-syntax">); </span><span class="identifier-syntax">INDENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"i7_properties[id].address[p] = 0;\n"</span><span class="plain-syntax">);</span>
|
||||
|
@ -687,11 +687,11 @@ and write them.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CreatePropertyOffsets</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_give</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_CreatePropertyOffsets</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_give</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_prop_len</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_prop_addr</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
|
@ -704,7 +704,7 @@ and write them.
|
|||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7_property_set</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7_property_set</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_properties</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">];</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">) ||</span>
|
||||
<span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_no_property_ids</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("</span><span class="Extracts-identifier-syntax">impossible</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">property</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">write</span><span class="Extracts-plain-syntax"> (%</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">, %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">)\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -723,7 +723,7 @@ and write them.
|
|||
</p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">) ||</span>
|
||||
<span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_no_property_ids</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">while</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_properties</span><span class="Extracts-plain-syntax">[(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">[(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">] == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -734,7 +734,7 @@ and write them.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_read_word</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">address</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_change_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">), </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">switch</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">way</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">case</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_lvalue_SET</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">pr</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">break</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
@ -748,7 +748,7 @@ and write them.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">new_val</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_give</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_give</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_write_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">owner</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">prop</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">val</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
|
@ -783,23 +783,23 @@ and write them.
|
|||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b></p>
|
||||
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">attr</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_provides</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_in</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_parent</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_child</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_children</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_sibling</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_move</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">attr</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_provides</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_in</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_parent</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_child</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_children</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_sibling</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_move</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">attr</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">attr</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">i7_read_prop_value</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">attr</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_provides</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_provides</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">) ||</span>
|
||||
<span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">prop_id</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_no_property_ids</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">while</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">owner_id</span><span class="Extracts-plain-syntax"> != </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -810,33 +810,33 @@ and write them.
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_in</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_in</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-identifier-syntax">i7_mgl_Object</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_parent</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">obj1</span><span class="Extracts-plain-syntax">] == </span><span class="Extracts-identifier-syntax">obj2</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_parent</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_parent</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-identifier-syntax">i7_mgl_Object</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_parent</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_child</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_child</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-identifier-syntax">i7_mgl_Object</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_child</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_children</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_children</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-identifier-syntax">i7_mgl_Object</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">=0;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_parent</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] == </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">++;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_sibling</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_sibling</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">fn_i7_mgl_metaclass</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">) != </span><span class="Extracts-identifier-syntax">i7_mgl_Object</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_sibling</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_move</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_move</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> ((</span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax"> <= </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) || (</span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax"> >= </span><span class="Extracts-identifier-syntax">i7_max_objects</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">p</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">i7_object_tree_parent</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">obj</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">p</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
|
|
@ -158,29 +158,32 @@ first of those:
|
|||
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">define</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-constant-syntax">10</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">typedef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">struct</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> {</span>
|
||||
<span class="Extracts-identifier-syntax">typedef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">struct</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">jmp_buf</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">execution_env</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">just_undid</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">} </span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax">;</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_save_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot_from</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">ss</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_latest_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initializer</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_save_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot_from</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">ss</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_latest_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_set_process_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initializer</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_default_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">default_main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> **</span><span class="Extracts-identifier-syntax">argv</span><span class="Extracts-plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is part of the extract file inform7_clib.h.</li></ul>
|
||||
<pre class="Extracts-displayed-code all-displayed-code code-font">
|
||||
|
@ -200,7 +203,7 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">S</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_copy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">from</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_copy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">from</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">himem</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">from</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">himem</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">calloc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7_static_himem</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">sizeof</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7byte</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-identifier-syntax">NULL</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -235,7 +238,7 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">to</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">from</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">];</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7state</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">free</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">memory</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">himem</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">free</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">i7_object_tree_parent</span><span class="Extracts-plain-syntax">);</span>
|
||||
|
@ -245,7 +248,7 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">free</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">s</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">variables</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, &(</span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">then</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">old</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">valid</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
@ -257,16 +260,17 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">SS</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_new_state</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">for</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">=0; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax"><</span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">++) </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">i</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_new_snapshot</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">just_undid</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_default_receiver</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_save_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_save_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">valid</span><span class="Extracts-plain-syntax">)</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, &(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax">]));</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax">] = </span><span class="Extracts-identifier-syntax">i7_new_snapshot</span><span class="Extracts-plain-syntax">();</span>
|
||||
|
@ -278,13 +282,13 @@ first of those:
|
|||
<span class="Extracts-plain-syntax">// </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">setjmp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">was</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">env</span><span class="Extracts-plain-syntax">)) </span><span class="Extracts-identifier-syntax">fprintf</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">, "*** </span><span class="Extracts-identifier-syntax">Restore</span><span class="Extracts-plain-syntax">! %</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax"> ***\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">just_undid</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_has_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">valid</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_latest_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_latest_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">valid</span><span class="Extracts-plain-syntax">)</span>
|
||||
|
@ -292,7 +296,7 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshot_pos</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> < </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">I7_MAX_SNAPSHOTS</span><span class="Extracts-plain-syntax"> - </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">will_be</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">valid</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">) {</span>
|
||||
|
@ -306,7 +310,7 @@ first of those:
|
|||
<span class="Extracts-plain-syntax">// </span><span class="Extracts-identifier-syntax">longjmp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">snapshots</span><span class="Extracts-plain-syntax">[</span><span class="Extracts-identifier-syntax">was</span><span class="Extracts-plain-syntax">].</span><span class="Extracts-identifier-syntax">env</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot_from</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">ss</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_restore_snapshot_from</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7snapshot</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">ss</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_destroy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, &(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_copy_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, &(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">state</span><span class="Extracts-plain-syntax">), &(</span><span class="Extracts-identifier-syntax">ss</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">then</span><span class="Extracts-plain-syntax">));</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
@ -315,32 +319,34 @@ first of those:
|
|||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">201</span><span class="Extracts-plain-syntax">) </span><span class="Extracts-identifier-syntax">fputc</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">ifndef</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">I7_NO_MAIN</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> **</span><span class="Extracts-identifier-syntax">argv</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(&</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">i7_default_receiver</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">default_main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">argc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">char</span><span class="Extracts-plain-syntax"> **</span><span class="Extracts-identifier-syntax">argv</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">i7_new_process</span><span class="Extracts-plain-syntax">();</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(&</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax"> == </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("*** </span><span class="Extracts-identifier-syntax">Fatal</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">error</span><span class="Extracts-plain-syntax">: </span><span class="Extracts-identifier-syntax">halted</span><span class="Extracts-plain-syntax"> ***\</span><span class="Extracts-identifier-syntax">n</span><span class="Extracts-plain-syntax">");</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fflush</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stdout</span><span class="Extracts-plain-syntax">); </span><span class="Extracts-identifier-syntax">fflush</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">stderr</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">.</span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
<span class="Extracts-plain-syntax">#</span><span class="Extracts-identifier-syntax">endif</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_Main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-identifier-syntax">i7val</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_Main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_run_process</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">if</span><span class="Extracts-plain-syntax"> (</span><span class="Extracts-identifier-syntax">setjmp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">execution_env</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">; /* </span><span class="Extracts-identifier-syntax">terminated</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">abnormally</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-plain-syntax"> } </span><span class="Extracts-identifier-syntax">else</span><span class="Extracts-plain-syntax"> {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_state</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initializer</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_initialise_streams</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">fn_i7_mgl_Main</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">; /* </span><span class="Extracts-identifier-syntax">terminated</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">normally</span><span class="Extracts-plain-syntax"> */</span>
|
||||
<span class="Extracts-plain-syntax"> }</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">return</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">termination_code</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_set_process_receiver</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> (*</span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">)(</span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">id</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-identifier-syntax">wchar_t</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">c</span><span class="Extracts-plain-syntax">)) {</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-identifier-syntax">receiver</span><span class="Extracts-plain-syntax">;</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-identifier-syntax">void</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">i7_fatal_exit</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">i7process_t</span><span class="Extracts-plain-syntax"> *</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">) {</span>
|
||||
<span class="Extracts-plain-syntax">// </span><span class="Extracts-identifier-syntax">int</span><span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax"> = </span><span class="Extracts-constant-syntax">0</span><span class="Extracts-plain-syntax">; </span><span class="Extracts-identifier-syntax">printf</span><span class="Extracts-plain-syntax">("%</span><span class="Extracts-identifier-syntax">d</span><span class="Extracts-plain-syntax">", </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">/</span><span class="Extracts-identifier-syntax">x</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax"> </span><span class="Extracts-identifier-syntax">longjmp</span><span class="Extracts-plain-syntax">(</span><span class="Extracts-identifier-syntax">proc</span><span class="Extracts-plain-syntax">-></span><span class="Extracts-identifier-syntax">execution_env</span><span class="Extracts-plain-syntax">, </span><span class="Extracts-constant-syntax">1</span><span class="Extracts-plain-syntax">);</span>
|
||||
<span class="Extracts-plain-syntax">}</span>
|
||||
|
@ -446,7 +452,30 @@ first of those:
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="constant-syntax">c_header_inclusion_I7CGS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</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">compile_main</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-></span><span class="element-syntax">from_step</span><span class="plain-syntax">-></span><span class="identifier-syntax">for_VM</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opts</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TargetVMs::option_list</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">opts</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">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"main"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">compile_main</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"no-main"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">compile_main</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"Unknown compilation format option"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"Unknown compilation format option"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">Architectures::debug_enabled</span><span class="plain-syntax">(</span><span class="identifier-syntax">TargetVMs::get_architecture</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"#define DEBUG\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"#include \"inform7_clib.h\"\n"</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">compile_main</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"int main(int argc, char **argv) { return default_main(argc, argv); }\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"#pragma clang diagnostic push\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"#pragma clang diagnostic ignored \"-Wparentheses-equality\"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::deselect</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">saved</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="constant-syntax">c_library_inclusion_I7CGS</span><span class="plain-syntax">);</span>
|
||||
|
@ -474,6 +503,11 @@ first of those:
|
|||
<span class="plain-syntax"> </span><a href="5-cim.html#SP1" class="function-link"><span class="function-syntax">CInputOutputModel::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cmm.html#SP4" class="function-link"><span class="function-syntax">CMemoryModel::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">); </span><span class="comment-syntax"> must be last to end</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="constant-syntax">c_initialiser_I7CGS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"#pragma clang diagnostic pop\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::deselect</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">saved</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
347
docs/inform7/M-cifc.html
Normal file
347
docs/inform7/M-cifc.html
Normal file
|
@ -0,0 +1,347 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Calling Inform from C</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script src="http://code.jquery.com/jquery-1.12.4.min.js"
|
||||
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="../docs-assets/Bigfoot.js"></script>
|
||||
<link href="../docs-assets/Bigfoot.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/ConsoleText-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">inform7</span></a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../pipeline-module/index.html">pipeline</a></li>
|
||||
<li><a href="../final-module/index.html">final</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Calling Inform from C' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Compiler Tools</a></li><li><a href="index.html">inform7</a></li><li><a href="index.html#M">Manual</a></li><li><b>Calling Inform from C</b></li></ul></div>
|
||||
<p class="purpose">In 2021, Inform gained the ability to generate C code which could be used as part of a larger program, for example in a framework such as Unity.</p>
|
||||
|
||||
<ul class="toc"><li><a href="M-cifc.html#SP1">§1. Introduction</a></li><li><a href="M-cifc.html#SP2">§2. Example makes</a></li><li><a href="M-cifc.html#SP3">§3. Example 1: Hello World</a></li><li><a href="M-cifc.html#SP4">§4. Example 2: Hello Hello</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Introduction. </b>Users of the Inform UI apps make programs which are usually textual simulations,
|
||||
and which are in any case sealed boxes running on virtual machines such as Glulx.
|
||||
Although very creative things have been done to hook those up to other machinery,
|
||||
usually via Javascript trickery when running those VMs as part of a website, it
|
||||
is mostly impractical to use those tricks to have Inform 7 work as part of a
|
||||
bigger program not written in Inform.
|
||||
</p>
|
||||
|
||||
<p class="commentary">However, it is now, as of 2021, possible to use Inform equally well as a
|
||||
command-line tool and to use it to generate code which can link into a C
|
||||
program, and indeed it's therefore quite easy to have a hybrid program —
|
||||
part Inform, part C/C++ (or indeed anything else which can call C functions).
|
||||
For example, one could imagine a game developed with Unity which uses a
|
||||
portion of Inform 7 code to manage, say, just world-modelling or text
|
||||
generation services.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The following documentation covers how to build hybrid Inform-and-C programs.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Example makes. </b>The Inform source repository includes a small suite of examples of such hybrid
|
||||
programs, stored at:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax">inform/inform7/Tests/Test Makes/Eg1-C</span>
|
||||
<span class="ConsoleText-plain-syntax">inform/inform7/Tests/Test Makes/Eg2-C</span>
|
||||
<span class="ConsoleText-plain-syntax">...</span>
|
||||
</pre>
|
||||
<p class="commentary">These toy programs are automatically built and tested as part of the Inform 7
|
||||
test suite, but they can also be copied and then experimented with. We'll call
|
||||
these projects "makes", and indeed each one contains a makefile. Change directory
|
||||
to it, type <span class="extract"><span class="ConsoleText-extract-syntax">make</span></span>, and an executable should appear.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The makefiles assume that you have access to the <span class="extract"><span class="ConsoleText-extract-syntax">clang</span></span> C compiler, but <span class="extract"><span class="ConsoleText-extract-syntax">gcc</span></span>
|
||||
could equally be used, or any C-99 compatible tool. The makefiles open with a
|
||||
reference to the location of the <span class="extract"><span class="ConsoleText-extract-syntax">inform7</span></span> installation on your filing system;
|
||||
so that opening will need to be edited if you move these projects out of
|
||||
<span class="extract"><span class="ConsoleText-extract-syntax">inform/inform7/Tests/Test Makes/</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Example 1: Hello World. </b>This first example is not even a hybrid. It compiles the simplest of Basic Inform
|
||||
programs:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">begin</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">"Hello world."</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary">...by translating it into a C program, which it then compiles, to produce a native
|
||||
executable. The following shows this working:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">cd</span><span class="ConsoleText-plain-syntax"> "inform/inform7/Tests/Test Makes/Eg1-C"</span>
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">ls</span>
|
||||
<span class="ConsoleText-plain-syntax">Eg1.i7 ideal_output.txt makefile</span>
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">make</span><span class="ConsoleText-identifier-syntax"> -silent</span>
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">ls</span>
|
||||
<span class="ConsoleText-plain-syntax">Eg1 Eg1-I.o ideal_output.txt</span>
|
||||
<span class="ConsoleText-plain-syntax">Eg1-I.c Eg1.i7 makefile</span>
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">./Eg1</span>
|
||||
<span class="ConsoleText-plain-syntax">Hello world.</span>
|
||||
</pre>
|
||||
<p class="commentary"><span class="extract"><span class="ConsoleText-extract-syntax">ideal_output.txt</span></span> contains the text which the program should print, if it works
|
||||
correctly: this is used in testing. The make process accomplished the following:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> Eg1.i7 source in Inform 7</span>
|
||||
<span class="plain-syntax"> |</span>
|
||||
<span class="plain-syntax"> | inform7</span>
|
||||
<span class="plain-syntax"> \|/</span>
|
||||
<span class="plain-syntax"> Eg1-I.c source in C</span>
|
||||
<span class="plain-syntax"> |</span>
|
||||
<span class="plain-syntax"> | clang (acting as C compiler)</span>
|
||||
<span class="plain-syntax"> \|/</span>
|
||||
<span class="plain-syntax"> Eg1-I.o C object file</span>
|
||||
<span class="plain-syntax"> |</span>
|
||||
<span class="plain-syntax"> | clang (acting as linker)</span>
|
||||
<span class="plain-syntax"> \|/</span>
|
||||
<span class="plain-syntax"> Eg1 native executable</span>
|
||||
</pre>
|
||||
<p class="commentary">As with all of the examples, <span class="extract"><span class="extract-syntax">make run</span></span> runs the program, building it if necessary;
|
||||
and <span class="extract"><span class="extract-syntax">make clean</span></span> removes the files generated by the build process, returning the
|
||||
directory to its mint condition. In this case, that means deleting <span class="extract"><span class="extract-syntax">Eg1-I.c</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">Eg1-I.o</span></span> and <span class="extract"><span class="extract-syntax">Eg1</span></span>. Note the filenaming convention: the <span class="extract"><span class="extract-syntax">-I</span></span> in the name of, say,
|
||||
<span class="extract"><span class="extract-syntax">Eg1-I.c</span></span> is supposed to signal that the file was derived from an Inform original.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The makefile for Example 1 is simple, and in a full build it runs the following:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">make</span>
|
||||
<span class="ConsoleText-plain-syntax">../../../Tangled/inform7 -silence -basic -format=C -o Eg1-I.c Eg1.i7</span>
|
||||
<span class="ConsoleText-plain-syntax">clang -g -std=c99 -c -I ../../../Internal/Miscellany -o Eg1-I.o Eg1-I.c</span>
|
||||
<span class="ConsoleText-plain-syntax">clang -g -o Eg1 Eg1-I.o</span>
|
||||
</pre>
|
||||
<p class="commentary">All three tools compile silently if no errors occur, though in the case of <a href="index.html" class="internal">inform7</a>
|
||||
that's only because <span class="extract"><span class="ConsoleText-extract-syntax">-silence</span></span> was asked for. <span class="extract"><span class="ConsoleText-extract-syntax">-basic</span></span> indicates that this is a
|
||||
Basic Inform program, which is not asked to contain a command parser, for example.
|
||||
<span class="extract"><span class="ConsoleText-extract-syntax">-format=C</span></span> makes the output a C program rather than an Inform 6 one, of course.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The <span class="extract"><span class="ConsoleText-extract-syntax">-I ../../../Internal/Miscellany</span></span> switch when using <span class="extract"><span class="ConsoleText-extract-syntax">clang</span></span> as C compiler
|
||||
tells it that this directory should be in the search path for <span class="extract"><span class="ConsoleText-extract-syntax">#include</span></span> files.
|
||||
This is needed so that:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">include</span><span class="plain-syntax"> </span><span class="string-syntax">"inform7_clib.h"</span>
|
||||
</pre>
|
||||
<p class="commentary">will work. This header file is supplied in every Inform installation at:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">inform7/Internal/Miscellany/inform7_clib.h</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Example 2: Hello Hello. </b>This time we begin with both a C program and an Inform program, both of which
|
||||
want to say hello: we want to compile these into a single executable. Now the
|
||||
makefile has an extra step:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> Eg2.c Eg2.i7 source in C and Inform 7 respectively</span>
|
||||
<span class="plain-syntax"> | |</span>
|
||||
<span class="plain-syntax"> | | inform7</span>
|
||||
<span class="plain-syntax"> | \|/</span>
|
||||
<span class="plain-syntax"> | Eg2-I.c source in C</span>
|
||||
<span class="plain-syntax"> | |</span>
|
||||
<span class="plain-syntax"> | clang | clang (acting as C compiler)</span>
|
||||
<span class="plain-syntax"> \|/ \|/</span>
|
||||
<span class="plain-syntax"> Eg2.o Eg2-I.o C object files</span>
|
||||
<span class="plain-syntax"> | |</span>
|
||||
<span class="plain-syntax"> +------+------+</span>
|
||||
<span class="plain-syntax"> |</span>
|
||||
<span class="plain-syntax"> | clang (acting as linker)</span>
|
||||
<span class="plain-syntax"> \|/</span>
|
||||
<span class="plain-syntax"> Eg2 native executable</span>
|
||||
</pre>
|
||||
<p class="commentary">That will be the basic plan for all the remaining examples too, so we'll stop
|
||||
with these diagrams. Here <span class="extract"><span class="extract-syntax">Eg2.c</span></span> is the C part of our source code, and is not
|
||||
to be confused with <span class="extract"><span class="extract-syntax">Eg2-I.c</span></span>, which is the conversion to C of the Inform part
|
||||
of our source. Each produces an object file, and the link unites these into a
|
||||
single executable.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The Inform source reads:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">begin</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">"Hello from the Inform source."</span>
|
||||
</pre>
|
||||
<p class="commentary">The C source could be very easy too:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">include</span><span class="plain-syntax"> </span><span class="string-syntax">"inform7_clib.h"</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">printf</span><span class="plain-syntax">(</span><span class="string-syntax">"Hello from the C source code.\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7process_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">proc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i7_new_process</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7_run_process</span><span class="plain-syntax">(&</span><span class="identifier-syntax">proc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary">When run, this produces:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax">Hello from the C source code.</span>
|
||||
<span class="ConsoleText-plain-syntax">Hello from the Inform source.</span>
|
||||
</pre>
|
||||
<p class="commentary">Note that the C program is the one in command here: in particular, it contains
|
||||
<span class="extract"><span class="ConsoleText-extract-syntax">main</span></span>. That means of course that <span class="extract"><span class="ConsoleText-extract-syntax">Eg2-I.c</span></span> must not include a <span class="extract"><span class="ConsoleText-extract-syntax">main</span></span> function,
|
||||
or the linking stage will throw an error; whereas <span class="extract"><span class="ConsoleText-extract-syntax">Eg1-I.c</span></span>, in the previous example,
|
||||
did have to include <span class="extract"><span class="ConsoleText-extract-syntax">main</span></span>. So clearly something must be different about the
|
||||
command to generate C from Inform this time.
|
||||
</p>
|
||||
|
||||
<p class="commentary">This issue is resolved by tweaking the <span class="extract"><span class="ConsoleText-extract-syntax">-format</span></span> requested. Whereas the makefile
|
||||
for example 1 asked <span class="extract"><span class="ConsoleText-extract-syntax">inform7</span></span> for <span class="extract"><span class="ConsoleText-extract-syntax">-format=C</span></span>, the makefile for example 2 asks it
|
||||
for <span class="extract"><span class="ConsoleText-extract-syntax">-format=C/no-main</span></span>. The <span class="extract"><span class="ConsoleText-extract-syntax">no-main</span></span> tells the part of Inform which generates C
|
||||
code not to make a <span class="extract"><span class="ConsoleText-extract-syntax">main</span></span> of its own, and so all is well. <span class="extract"><span class="ConsoleText-extract-syntax">-format=C/main</span></span> is
|
||||
the default arrangement, to which <span class="extract"><span class="ConsoleText-extract-syntax">-format=C</span></span> is equivalent.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>The type <span class="extract"><span class="ConsoleText-extract-syntax">i7process_t</span></span> is used for an "Inform process".<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> A single C program can
|
||||
contain any number of these, and indeed could call them independently from
|
||||
multiple threads at the same time: but they are all instances of the same Inform
|
||||
program running, each with its own independent state and data. So, for example,
|
||||
two different Inform processes will have two different values for the same Inform
|
||||
variable name. In effect, they are isolated, independent virtual machines, each
|
||||
running a copy of the same program.
|
||||
</p>
|
||||
|
||||
<p class="commentary">It is essential to create a process as shown, with a call to <span class="extract"><span class="ConsoleText-extract-syntax">i7_new_process</span></span>.
|
||||
Once created, though, the same process can be run multiple times. If we had
|
||||
written,
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7process_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">proc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i7_new_process</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7_run_process</span><span class="plain-syntax">(&</span><span class="identifier-syntax">proc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7_run_process</span><span class="plain-syntax">(&</span><span class="identifier-syntax">proc</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<p class="commentary">then the result would have been:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax">Hello from the C source code.</span>
|
||||
<span class="ConsoleText-plain-syntax">Hello from the Inform source.</span>
|
||||
<span class="ConsoleText-plain-syntax">Hello from the Inform source.</span>
|
||||
</pre>
|
||||
<ul class="footnotetexts"><li class="footnote" id="fn:1"><p class="inwebfootnote"><sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> Strictly speaking, typedef names ending <span class="extract"><span class="ConsoleText-extract-syntax">_t</span></span> are reserved for use by the
|
||||
POSIX standard, so this is a sin, but really, I don't see POSIX ever needing names
|
||||
prefixed <span class="extract"><span class="ConsoleText-extract-syntax">i7</span></span>, and besides, everybody does it.
|
||||
<a href="#fnref:1" title="return to text"> ↩</a></p></li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>A note about thread safety. Suppose the C program runs multiple threads. Then:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(a) It is perfectly thread-safe for two or more threads to each be running
|
||||
Inform processes simultaneously, but
|
||||
</li><li>(b) They must be different <span class="extract"><span class="ConsoleText-extract-syntax">i7process_t</span></span> objects, and
|
||||
</li><li>(c) They do not share any data: each process has its own data. If there is an
|
||||
Inform variable called "favourite colour", for example, two different <span class="extract"><span class="ConsoleText-extract-syntax">i7process_t</span></span>
|
||||
processes running at the same time will have two different values of this.
|
||||
</li></ul>
|
||||
<p class="commentary">Note that all <span class="extract"><span class="ConsoleText-extract-syntax">i7process_t</span></span> instances are running the same Inform program. You
|
||||
cannot, at present, link multiple different Inform programs into the same C
|
||||
program.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Formally speaking, <span class="extract"><span class="ConsoleText-extract-syntax">i7_run_process</span></span> returns the entire Inform program to its
|
||||
end, and then returns an exit code: 0 if that program exited cleanly, and 1
|
||||
if it halted with a fatal error, for example through dividing by zero, or
|
||||
failing a memory allocation. In that event, an error message will be printed
|
||||
to <span class="extract"><span class="ConsoleText-extract-syntax">stderr</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary">So, for the sake of tidiness, the full <span class="extract"><span class="ConsoleText-extract-syntax">Eg2.c</span></span> reads:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">include</span><span class="plain-syntax"> </span><span class="string-syntax">"inform7_clib.h"</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">printf</span><span class="plain-syntax">(</span><span class="string-syntax">"Hello from the C source code.\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i7process_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">proc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i7_new_process</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">exit_code</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i7_run_process</span><span class="plain-syntax">(&</span><span class="identifier-syntax">proc</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">exit_code</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">printf</span><span class="plain-syntax">(</span><span class="string-syntax">"*** Fatal error: halted ***\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fflush</span><span class="plain-syntax">(</span><span class="identifier-syntax">stdout</span><span class="plain-syntax">); </span><span class="identifier-syntax">fflush</span><span class="plain-syntax">(</span><span class="identifier-syntax">stderr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit_code</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary">Example 2 is in fact so simple that it is impossible for the exit code to be
|
||||
other than 0, but checking the exit code is good practice.
|
||||
</p>
|
||||
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-iwtg.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresscurrent">cifc</li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-rc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -385,7 +385,7 @@ had been worked into the verification process for builds. The history since
|
|||
</p>
|
||||
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrentchapter">M</li><li class="progresscurrent">cu</li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-iwtg.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrentchapter">M</li><li class="progresscurrent">cu</li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresssection"><a href="M-cifc.html">cifc</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-iwtg.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -183,7 +183,7 @@ these errors.)
|
|||
</p>
|
||||
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-cu.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresscurrent">iwtg</li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-rc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-cu.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresscurrent">iwtg</li><li class="progresssection"><a href="M-cifc.html">cifc</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-cifc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -84,12 +84,12 @@ which take more than 1/1000th of the total running time.
|
|||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">100.0% in inform7 run</span>
|
||||
<span class="plain-syntax"> 53.7% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 39.0% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 2.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 1.4% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
|
||||
<span class="plain-syntax"> 1.4% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
|
||||
<span class="plain-syntax"> 53.8% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 39.3% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 3.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 2.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 1.2% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
|
||||
<span class="plain-syntax"> 1.2% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
|
||||
<span class="plain-syntax"> 1.1% in </span><a href="../runtime-module/5-kc.html#SP10" class="internal">RTKindConstructors::compile</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
|
@ -101,24 +101,24 @@ which take more than 1/1000th of the total running time.
|
|||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/5-kc.html#SP10_7" class="internal">RTKindConstructors::compile_permissions</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../knowledge-module/5-tmw.html#SP3" class="internal">World::stages_II_and_III</a>
|
||||
<span class="plain-syntax"> 1.9% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 44.3% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 12.5% in step preparation</span>
|
||||
<span class="plain-syntax"> 9.5% in inter step 7/16: consolidate-text</span>
|
||||
<span class="plain-syntax"> 2.1% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 44.2% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 12.6% in step preparation</span>
|
||||
<span class="plain-syntax"> 9.6% in inter step 7/16: consolidate-text</span>
|
||||
<span class="plain-syntax"> 8.0% in inter step 16/16: generate inform6 -> auto.inf</span>
|
||||
<span class="plain-syntax"> 8.0% in inter step 2/16: link</span>
|
||||
<span class="plain-syntax"> 7.9% in inter step 2/16: link</span>
|
||||
<span class="plain-syntax"> 1.5% in inter step 11/16: make-identifiers-unique</span>
|
||||
<span class="plain-syntax"> 0.4% in inter step 12/16: reconcile-verbs</span>
|
||||
<span class="plain-syntax"> 0.2% in inter step 10/16: detect-indirect-calls</span>
|
||||
<span class="plain-syntax"> 0.2% in inter step 14/16: eliminate-redundant-operations</span>
|
||||
<span class="plain-syntax"> 0.2% in inter step 6/16: assimilate</span>
|
||||
<span class="plain-syntax"> 0.2% in inter step 8/16: resolve-external-symbols</span>
|
||||
<span class="plain-syntax"> 0.2% in inter step 9/16: inspect-plugs</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 10/16: detect-indirect-calls</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 13/16: eliminate-redundant-labels</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 4/16: parse-linked-matter</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 5/16: resolve-conditional-compilation</span>
|
||||
<span class="plain-syntax"> 2.5% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 1.6% in supervisor</span>
|
||||
<span class="plain-syntax"> 2.2% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 1.7% in supervisor</span>
|
||||
<span class="plain-syntax"> 0.2% not specifically accounted for</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Memory consumption. </b>The following gives some idea of which classes of object have the most
|
||||
|
@ -364,7 +364,7 @@ represent less than 1/1000th of the total.
|
|||
|
||||
<span class="plain-syntax">38.4% was used for memory not allocated for objects:</span>
|
||||
|
||||
<span class="plain-syntax"> 19.1% text stream storage 75431748 bytes in 530098 claims</span>
|
||||
<span class="plain-syntax"> 19.1% text stream storage 75431976 bytes in 530100 claims</span>
|
||||
<span class="plain-syntax"> 4.5% dictionary storage 18098176 bytes in 33115 claims</span>
|
||||
<span class="plain-syntax"> ---- sorting 744 bytes in 3 claims</span>
|
||||
<span class="plain-syntax"> 1.8% source text 7200000 bytes in 3 claims</span>
|
||||
|
@ -1652,7 +1652,7 @@ that is, with the content of extensions excluded, and with the content of
|
|||
|
||||
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-rc.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresscurrent">pm</li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="1-mn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-rc.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresssection"><a href="M-cifc.html">cifc</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresscurrent">pm</li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="1-mn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
<span class="plain-syntax">-version print out version number</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-iwtg.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresscurrent">rc</li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-pm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-cifc.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-cu.html">cu</a></li><li class="progresssection"><a href="M-iwtg.html">iwtg</a></li><li class="progresssection"><a href="M-cifc.html">cifc</a></li><li class="progresscurrent">rc</li><li class="progresssection"><a href="M-pm.html">pm</a></li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="M-pm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -77,6 +77,11 @@
|
|||
<spon class="sectiontitle">Interacting with the GUI</span></a> -
|
||||
<span class="sectionpurpose">A few notes on how the GUI apps should use the Inform command line.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="M-cifc.html">
|
||||
<spon class="sectiontitle">Calling Inform from C</span></a> -
|
||||
<span class="sectionpurpose">In 2021, Inform gained the ability to generate C code which could be used as part of a larger program, for example in a framework such as Unity.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="M-rc.html">
|
||||
<spon class="sectiontitle">Reference Card</span></a> -
|
||||
|
|
|
@ -36,6 +36,7 @@ Import: inter/index
|
|||
Manual
|
||||
Command-Line Usage
|
||||
Interacting with the GUI
|
||||
Calling Inform from C
|
||||
Reference Card
|
||||
Performance Metrics
|
||||
|
||||
|
|
|
@ -234,7 +234,7 @@ Total memory consumption was 384465K = 375 MB
|
|||
|
||||
38.4% was used for memory not allocated for objects:
|
||||
|
||||
19.1% text stream storage 75431748 bytes in 530098 claims
|
||||
19.1% text stream storage 75431976 bytes in 530100 claims
|
||||
4.5% dictionary storage 18098176 bytes in 33115 claims
|
||||
---- sorting 744 bytes in 3 claims
|
||||
1.8% source text 7200000 bytes in 3 claims
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
100.0% in inform7 run
|
||||
53.7% in compilation to Inter
|
||||
39.2% in //Sequence::undertake_queued_tasks//
|
||||
3.3% in //MajorNodes::pre_pass//
|
||||
2.6% in //MajorNodes::pass_1//
|
||||
1.3% in //ImperativeDefinitions::assess_all//
|
||||
1.3% in //RTPhrasebook::compile_entries//
|
||||
53.8% in compilation to Inter
|
||||
39.3% in //Sequence::undertake_queued_tasks//
|
||||
3.4% in //MajorNodes::pre_pass//
|
||||
2.4% in //MajorNodes::pass_1//
|
||||
1.2% in //ImperativeDefinitions::assess_all//
|
||||
1.2% in //RTPhrasebook::compile_entries//
|
||||
1.1% in //RTKindConstructors::compile//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
|
@ -16,23 +16,22 @@
|
|||
0.1% in //RTKindConstructors::compile_permissions//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.0% not specifically accounted for
|
||||
44.3% in running Inter pipeline
|
||||
12.7% in step preparation
|
||||
9.5% in inter step 7/16: consolidate-text
|
||||
7.9% in inter step 16/16: generate inform6 -> auto.inf
|
||||
2.1% not specifically accounted for
|
||||
44.2% in running Inter pipeline
|
||||
12.6% in step preparation
|
||||
9.6% in inter step 7/16: consolidate-text
|
||||
8.0% in inter step 16/16: generate inform6 -> auto.inf
|
||||
7.9% in inter step 2/16: link
|
||||
1.5% in inter step 11/16: make-identifiers-unique
|
||||
0.4% in inter step 12/16: reconcile-verbs
|
||||
0.2% in inter step 10/16: detect-indirect-calls
|
||||
0.2% in inter step 14/16: eliminate-redundant-operations
|
||||
0.2% in inter step 6/16: assimilate
|
||||
0.2% in inter step 8/16: resolve-external-symbols
|
||||
0.2% in inter step 9/16: inspect-plugs
|
||||
0.1% in inter step 10/16: detect-indirect-calls
|
||||
0.1% in inter step 13/16: eliminate-redundant-labels
|
||||
0.1% in inter step 3/16: merge-template <- none
|
||||
0.1% in inter step 4/16: parse-linked-matter
|
||||
0.1% in inter step 5/16: resolve-conditional-compilation
|
||||
2.0% not specifically accounted for
|
||||
1.5% in supervisor
|
||||
0.3% not specifically accounted for
|
||||
2.2% not specifically accounted for
|
||||
1.7% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
|
|
|
@ -33,7 +33,7 @@ before it is known how they will be used.
|
|||
|
||||
[ Main;
|
||||
VM_Initialise();
|
||||
print "^";
|
||||
print "^";
|
||||
INITIALISE_MEMORY_R();
|
||||
SEED_RANDOM_NUMBER_GENERATOR_R();
|
||||
Submain();
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -40,29 +40,32 @@ typedef struct i7snapshot {
|
|||
|
||||
#define I7_MAX_SNAPSHOTS 10
|
||||
|
||||
typedef struct i7process {
|
||||
typedef struct i7process_t {
|
||||
i7state state;
|
||||
i7snapshot snapshots[I7_MAX_SNAPSHOTS];
|
||||
int snapshot_pos;
|
||||
jmp_buf execution_env;
|
||||
int termination_code;
|
||||
int just_undid;
|
||||
} i7process;
|
||||
void (*receiver)(int id, wchar_t c);
|
||||
} i7process_t;
|
||||
|
||||
i7state i7_new_state(void);
|
||||
i7process i7_new_process(void);
|
||||
i7process_t i7_new_process(void);
|
||||
i7snapshot i7_new_snapshot(void);
|
||||
void i7_save_snapshot(i7process *proc);
|
||||
int i7_has_snapshot(i7process *proc);
|
||||
void i7_restore_snapshot(i7process *proc);
|
||||
void i7_restore_snapshot_from(i7process *proc, i7snapshot *ss);
|
||||
void i7_destroy_latest_snapshot(i7process *proc);
|
||||
void i7_run_process(i7process *proc, void (*receiver)(int id, wchar_t c));
|
||||
void i7_initializer(i7process *proc);
|
||||
void i7_fatal_exit(i7process *proc);
|
||||
void i7_destroy_state(i7process *proc, i7state *s);
|
||||
void i7_destroy_snapshot(i7process *proc, i7snapshot *old);
|
||||
void i7_save_snapshot(i7process_t *proc);
|
||||
int i7_has_snapshot(i7process_t *proc);
|
||||
void i7_restore_snapshot(i7process_t *proc);
|
||||
void i7_restore_snapshot_from(i7process_t *proc, i7snapshot *ss);
|
||||
void i7_destroy_latest_snapshot(i7process_t *proc);
|
||||
int i7_run_process(i7process_t *proc);
|
||||
void i7_set_process_receiver(i7process_t *proc, void (*receiver)(int id, wchar_t c));
|
||||
void i7_initializer(i7process_t *proc);
|
||||
void i7_fatal_exit(i7process_t *proc);
|
||||
void i7_destroy_state(i7process_t *proc, i7state *s);
|
||||
void i7_destroy_snapshot(i7process_t *proc, i7snapshot *old);
|
||||
void i7_default_receiver(int id, wchar_t c);
|
||||
int default_main(int argc, char **argv);
|
||||
#define i7_lvalue_SET 1
|
||||
#define i7_lvalue_PREDEC 2
|
||||
#define i7_lvalue_POSTDEC 3
|
||||
|
@ -70,132 +73,132 @@ void i7_default_receiver(int id, wchar_t c);
|
|||
#define i7_lvalue_POSTINC 5
|
||||
#define i7_lvalue_SETBIT 6
|
||||
#define i7_lvalue_CLEARBIT 7
|
||||
void i7_initialise_state(i7process *proc);
|
||||
i7byte i7_read_byte(i7process *proc, i7val address);
|
||||
i7val i7_read_word(i7process *proc, i7val array_address, i7val array_index);
|
||||
void i7_initialise_state(i7process_t *proc);
|
||||
i7byte i7_read_byte(i7process_t *proc, i7val address);
|
||||
i7val i7_read_word(i7process_t *proc, i7val array_address, i7val array_index);
|
||||
#define I7BYTE_0(V) ((V & 0xFF000000) >> 24)
|
||||
#define I7BYTE_1(V) ((V & 0x00FF0000) >> 16)
|
||||
#define I7BYTE_2(V) ((V & 0x0000FF00) >> 8)
|
||||
#define I7BYTE_3(V) (V & 0x000000FF)
|
||||
|
||||
void i7_write_byte(i7process *proc, i7val address, i7byte new_val);
|
||||
i7val i7_write_word(i7process *proc, i7val array_address, i7val array_index, i7val new_val, int way);
|
||||
void glulx_aloads(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_mcopy(i7process *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_malloc(i7process *proc, i7val x, i7val y);
|
||||
void glulx_mfree(i7process *proc, i7val x);
|
||||
void i7_write_byte(i7process_t *proc, i7val address, i7byte new_val);
|
||||
i7val i7_write_word(i7process_t *proc, i7val array_address, i7val array_index, i7val new_val, int way);
|
||||
void glulx_aloads(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_mcopy(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_malloc(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_mfree(i7process_t *proc, i7val x);
|
||||
void i7_debug_stack(char *N);
|
||||
i7val i7_pull(i7process *proc);
|
||||
void i7_push(i7process *proc, i7val x);
|
||||
void glulx_accelfunc(i7process *proc, i7val x, i7val y);
|
||||
void glulx_accelparam(i7process *proc, i7val x, i7val y);
|
||||
void glulx_copy(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_gestalt(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
int glulx_jeq(i7process *proc, i7val x, i7val y);
|
||||
void glulx_nop(i7process *proc);
|
||||
int glulx_jleu(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jnz(i7process *proc, i7val x);
|
||||
int glulx_jz(i7process *proc, i7val x);
|
||||
void glulx_quit(i7process *proc);
|
||||
void glulx_setiosys(i7process *proc, i7val x, i7val y);
|
||||
void glulx_streamchar(i7process *proc, i7val x);
|
||||
void glulx_streamnum(i7process *proc, i7val x);
|
||||
void glulx_streamstr(i7process *proc, i7val x);
|
||||
void glulx_streamunichar(i7process *proc, i7val x);
|
||||
void glulx_ushiftr(i7process *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_aload(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_aloadb(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
i7val i7_pull(i7process_t *proc);
|
||||
void i7_push(i7process_t *proc, i7val x);
|
||||
void glulx_accelfunc(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_accelparam(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_copy(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_gestalt(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
int glulx_jeq(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_nop(i7process_t *proc);
|
||||
int glulx_jleu(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jnz(i7process_t *proc, i7val x);
|
||||
int glulx_jz(i7process_t *proc, i7val x);
|
||||
void glulx_quit(i7process_t *proc);
|
||||
void glulx_setiosys(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_streamchar(i7process_t *proc, i7val x);
|
||||
void glulx_streamnum(i7process_t *proc, i7val x);
|
||||
void glulx_streamstr(i7process_t *proc, i7val x);
|
||||
void glulx_streamunichar(i7process_t *proc, i7val x);
|
||||
void glulx_ushiftr(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_aload(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_aloadb(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
#define serop_KeyIndirect (0x01)
|
||||
#define serop_ZeroKeyTerminates (0x02)
|
||||
#define serop_ReturnIndex (0x04)
|
||||
void glulx_binarysearch(i7process *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
void glulx_binarysearch(i7process_t *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
i7val numstructs, i7val keyoffset, i7val options, i7val *s1);
|
||||
void glulx_shiftl(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_restoreundo(i7process *proc, i7val *x);
|
||||
void glulx_saveundo(i7process *proc, i7val *x);
|
||||
void glulx_restart(i7process *proc);
|
||||
void glulx_restore(i7process *proc, i7val x, i7val y);
|
||||
void glulx_save(i7process *proc, i7val x, i7val y);
|
||||
void glulx_verify(i7process *proc, i7val x);
|
||||
void glulx_hasundo(i7process *proc, i7val *x);
|
||||
void glulx_discardundo(i7process *proc);
|
||||
void glulx_random(i7process *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_random(i7process *proc, i7val x);
|
||||
void glulx_setrandom(i7process *proc, i7val s);
|
||||
void glulx_add(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sub(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_neg(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_mul(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_div(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_div_r(i7process *proc, i7val x, i7val y);
|
||||
void glulx_mod(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_mod_r(i7process *proc, i7val x, i7val y);
|
||||
void glulx_shiftl(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_restoreundo(i7process_t *proc, i7val *x);
|
||||
void glulx_saveundo(i7process_t *proc, i7val *x);
|
||||
void glulx_restart(i7process_t *proc);
|
||||
void glulx_restore(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_save(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_verify(i7process_t *proc, i7val x);
|
||||
void glulx_hasundo(i7process_t *proc, i7val *x);
|
||||
void glulx_discardundo(i7process_t *proc);
|
||||
void glulx_random(i7process_t *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_random(i7process_t *proc, i7val x);
|
||||
void glulx_setrandom(i7process_t *proc, i7val s);
|
||||
void glulx_add(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sub(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_neg(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_mul(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_div(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_div_r(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_mod(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_mod_r(i7process_t *proc, i7val x, i7val y);
|
||||
typedef float gfloat32;
|
||||
i7val encode_float(gfloat32 val);
|
||||
gfloat32 decode_float(i7val val);
|
||||
void glulx_exp(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_fadd(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fdiv(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_floor(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_fmod(i7process *proc, i7val x, i7val y, i7val *z, i7val *w);
|
||||
void glulx_fmul(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fsub(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_ftonumn(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_ftonumz(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_numtof(i7process *proc, i7val x, i7val *y);
|
||||
int glulx_jfeq(i7process *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfne(i7process *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfge(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jflt(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jisinf(i7process *proc, i7val x);
|
||||
int glulx_jisnan(i7process *proc, i7val x);
|
||||
void glulx_log(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_acos(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_asin(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_atan(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_ceil(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_cos(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_pow(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sin(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_sqrt(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_tan(i7process *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_metaclass(i7process *proc, i7val id);
|
||||
int i7_ofclass(i7process *proc, i7val id, i7val cl_id);
|
||||
i7val fn_i7_mgl_CreatePropertyOffsets(i7process *proc);
|
||||
void i7_write_prop_value(i7process *proc, i7val owner_id, i7val prop_id, i7val val);
|
||||
i7val i7_read_prop_value(i7process *proc, i7val owner_id, i7val prop_id);
|
||||
i7val i7_change_prop_value(i7process *proc, i7val obj, i7val pr, i7val to, int way);
|
||||
void i7_give(i7process *proc, i7val owner, i7val prop, i7val val);
|
||||
void glulx_exp(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_fadd(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fdiv(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_floor(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_fmod(i7process_t *proc, i7val x, i7val y, i7val *z, i7val *w);
|
||||
void glulx_fmul(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fsub(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_ftonumn(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_ftonumz(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_numtof(i7process_t *proc, i7val x, i7val *y);
|
||||
int glulx_jfeq(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfne(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfge(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jflt(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jisinf(i7process_t *proc, i7val x);
|
||||
int glulx_jisnan(i7process_t *proc, i7val x);
|
||||
void glulx_log(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_acos(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_asin(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_atan(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_ceil(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_cos(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_pow(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sin(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_sqrt(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_tan(i7process_t *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_metaclass(i7process_t *proc, i7val id);
|
||||
int i7_ofclass(i7process_t *proc, i7val id, i7val cl_id);
|
||||
i7val fn_i7_mgl_CreatePropertyOffsets(i7process_t *proc);
|
||||
void i7_write_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id, i7val val);
|
||||
i7val i7_read_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id);
|
||||
i7val i7_change_prop_value(i7process_t *proc, i7val obj, i7val pr, i7val to, int way);
|
||||
void i7_give(i7process_t *proc, i7val owner, i7val prop, i7val val);
|
||||
i7val i7_prop_len(i7val obj, i7val pr);
|
||||
i7val i7_prop_addr(i7val obj, i7val pr);
|
||||
int i7_has(i7process *proc, i7val obj, i7val attr);
|
||||
int i7_provides(i7process *proc, i7val owner_id, i7val prop_id);
|
||||
int i7_in(i7process *proc, i7val obj1, i7val obj2);
|
||||
i7val fn_i7_mgl_parent(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_child(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_children(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_sibling(i7process *proc, i7val id);
|
||||
void i7_move(i7process *proc, i7val obj, i7val to);
|
||||
i7val i7_call_0(i7process *proc, i7val fn_ref);
|
||||
i7val i7_call_1(i7process *proc, i7val fn_ref, i7val v);
|
||||
i7val i7_call_2(i7process *proc, i7val fn_ref, i7val v, i7val v2);
|
||||
i7val i7_call_3(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_call_4(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4);
|
||||
i7val i7_call_5(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5);
|
||||
i7val i7_mcall_0(i7process *proc, i7val to, i7val prop);
|
||||
i7val i7_mcall_1(i7process *proc, i7val to, i7val prop, i7val v);
|
||||
i7val i7_mcall_2(i7process *proc, i7val to, i7val prop, i7val v, i7val v2);
|
||||
i7val i7_mcall_3(i7process *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_gen_call(i7process *proc, i7val fn_ref, i7val *args, int argc);
|
||||
void glulx_call(i7process *proc, i7val fn_ref, i7val varargc, i7val *z);
|
||||
void i7_print_dword(i7process *proc, i7val at);
|
||||
int i7_has(i7process_t *proc, i7val obj, i7val attr);
|
||||
int i7_provides(i7process_t *proc, i7val owner_id, i7val prop_id);
|
||||
int i7_in(i7process_t *proc, i7val obj1, i7val obj2);
|
||||
i7val fn_i7_mgl_parent(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_child(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_children(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_sibling(i7process_t *proc, i7val id);
|
||||
void i7_move(i7process_t *proc, i7val obj, i7val to);
|
||||
i7val i7_call_0(i7process_t *proc, i7val fn_ref);
|
||||
i7val i7_call_1(i7process_t *proc, i7val fn_ref, i7val v);
|
||||
i7val i7_call_2(i7process_t *proc, i7val fn_ref, i7val v, i7val v2);
|
||||
i7val i7_call_3(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_call_4(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4);
|
||||
i7val i7_call_5(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5);
|
||||
i7val i7_mcall_0(i7process_t *proc, i7val to, i7val prop);
|
||||
i7val i7_mcall_1(i7process_t *proc, i7val to, i7val prop, i7val v);
|
||||
i7val i7_mcall_2(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2);
|
||||
i7val i7_mcall_3(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_gen_call(i7process_t *proc, i7val fn_ref, i7val *args, int argc);
|
||||
void glulx_call(i7process_t *proc, i7val fn_ref, i7val varargc, i7val *z);
|
||||
void i7_print_dword(i7process_t *proc, i7val at);
|
||||
char *i7_text_of_string(i7val str);
|
||||
#define i7_bold 1
|
||||
#define i7_roman 2
|
||||
#define i7_underline 3
|
||||
#define i7_reverse 4
|
||||
void i7_style(i7process *proc, int what);
|
||||
void i7_font(i7process *proc, int what);
|
||||
void i7_style(i7process_t *proc, int what);
|
||||
void i7_font(i7process_t *proc, int what);
|
||||
|
||||
#define fileusage_Data (0x00)
|
||||
#define fileusage_SavedGame (0x01)
|
||||
|
@ -219,14 +222,14 @@ typedef struct i7_fileref {
|
|||
FILE *handle;
|
||||
} i7_fileref;
|
||||
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process *proc, i7val usage, i7val name, i7val rock);
|
||||
int i7_fseek(i7process *proc, int id, int pos, int origin);
|
||||
int i7_ftell(i7process *proc, int id);
|
||||
int i7_fopen(i7process *proc, int id, int mode);
|
||||
void i7_fclose(i7process *proc, int id);
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process *proc, i7val id);
|
||||
void i7_fputc(i7process *proc, int c, int id);
|
||||
int i7_fgetc(i7process *proc, int id);
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process_t *proc, i7val usage, i7val name, i7val rock);
|
||||
int i7_fseek(i7process_t *proc, int id, int pos, int origin);
|
||||
int i7_ftell(i7process_t *proc, int id);
|
||||
int i7_fopen(i7process_t *proc, int id, int mode);
|
||||
void i7_fclose(i7process_t *proc, int id);
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process_t *proc, i7val id);
|
||||
void i7_fputc(i7process_t *proc, int c, int id);
|
||||
int i7_fgetc(i7process_t *proc, int id);
|
||||
typedef struct i7_stream {
|
||||
FILE *to_file;
|
||||
i7val to_file_id;
|
||||
|
@ -244,33 +247,33 @@ typedef struct i7_stream {
|
|||
int end_position;
|
||||
int owned_by_window_id;
|
||||
} i7_stream;
|
||||
i7val i7_do_glk_stream_get_current(i7process *proc);
|
||||
i7_stream i7_new_stream(i7process *proc, FILE *F, int win_id);
|
||||
void i7_initialise_streams(i7process *proc, void (*receiver)(int id, wchar_t c));
|
||||
i7val i7_open_stream(i7process *proc, FILE *F, int win_id);
|
||||
i7val i7_do_glk_stream_open_memory(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_file(i7process *proc, i7val fileref, i7val usage, i7val rock);
|
||||
i7val i7_do_glk_stream_get_current(i7process_t *proc);
|
||||
i7_stream i7_new_stream(i7process_t *proc, FILE *F, int win_id);
|
||||
void i7_initialise_streams(i7process_t *proc);
|
||||
i7val i7_open_stream(i7process_t *proc, FILE *F, int win_id);
|
||||
i7val i7_do_glk_stream_open_memory(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_file(i7process_t *proc, i7val fileref, i7val usage, i7val rock);
|
||||
#define seekmode_Start (0)
|
||||
#define seekmode_Current (1)
|
||||
#define seekmode_End (2)
|
||||
void i7_do_glk_stream_set_position(i7process *proc, i7val id, i7val pos, i7val seekmode);
|
||||
i7val i7_do_glk_stream_get_position(i7process *proc, i7val id);
|
||||
void i7_do_glk_stream_close(i7process *proc, i7val id, i7val result);
|
||||
void i7_do_glk_stream_set_position(i7process_t *proc, i7val id, i7val pos, i7val seekmode);
|
||||
i7val i7_do_glk_stream_get_position(i7process_t *proc, i7val id);
|
||||
void i7_do_glk_stream_close(i7process_t *proc, i7val id, i7val result);
|
||||
typedef struct i7_winref {
|
||||
i7val type;
|
||||
i7val stream_id;
|
||||
i7val rock;
|
||||
} i7_winref;
|
||||
i7val i7_do_glk_window_open(i7process *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock);
|
||||
i7val i7_stream_of_window(i7process *proc, i7val id);
|
||||
i7val i7_rock_of_window(i7process *proc, i7val id);
|
||||
void i7_to_receiver(i7process *proc, i7val rock, wchar_t c);
|
||||
void i7_do_glk_put_char_stream(i7process *proc, i7val stream_id, i7val x);
|
||||
i7val i7_do_glk_get_char_stream(i7process *proc, i7val stream_id);
|
||||
void i7_print_char(i7process *proc, i7val x);
|
||||
void i7_print_C_string(i7process *proc, char *c_string);
|
||||
void i7_print_decimal(i7process *proc, i7val x);
|
||||
i7val i7_do_glk_window_open(i7process_t *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock);
|
||||
i7val i7_stream_of_window(i7process_t *proc, i7val id);
|
||||
i7val i7_rock_of_window(i7process_t *proc, i7val id);
|
||||
void i7_to_receiver(i7process_t *proc, i7val rock, wchar_t c);
|
||||
void i7_do_glk_put_char_stream(i7process_t *proc, i7val stream_id, i7val x);
|
||||
i7val i7_do_glk_get_char_stream(i7process_t *proc, i7val stream_id);
|
||||
void i7_print_char(i7process_t *proc, i7val x);
|
||||
void i7_print_C_string(i7process_t *proc, char *c_string);
|
||||
void i7_print_decimal(i7process_t *proc, i7val x);
|
||||
|
||||
#define evtype_None (0)
|
||||
#define evtype_Timer (1)
|
||||
|
@ -289,10 +292,10 @@ typedef struct i7_glk_event {
|
|||
i7val val1;
|
||||
i7val val2;
|
||||
} i7_glk_event;
|
||||
i7_glk_event *i7_next_event(i7process *proc);
|
||||
void i7_make_event(i7process *proc, i7_glk_event e);
|
||||
i7val i7_do_glk_select(i7process *proc, i7val structure);
|
||||
i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len);
|
||||
i7_glk_event *i7_next_event(i7process_t *proc);
|
||||
void i7_make_event(i7process_t *proc, i7_glk_event e);
|
||||
i7val i7_do_glk_select(i7process_t *proc, i7val structure);
|
||||
i7val i7_do_glk_request_line_event(i7process_t *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len);
|
||||
#define i7_glk_exit 0x0001
|
||||
#define i7_glk_set_interrupt_handler 0x0002
|
||||
#define i7_glk_tick 0x0003
|
||||
|
@ -416,14 +419,14 @@ i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffe
|
|||
#define i7_glk_date_to_time_local 0x016D
|
||||
#define i7_glk_date_to_simple_time_utc 0x016E
|
||||
#define i7_glk_date_to_simple_time_local 0x016F
|
||||
void glulx_glk(i7process *proc, i7val glk_api_selector, i7val varargc, i7val *z);
|
||||
i7val fn_i7_mgl_IndefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_DefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CIndefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CDefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_PrintShortName(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
void i7_print_name(i7process *proc, i7val x);
|
||||
void i7_print_object(i7process *proc, i7val x);
|
||||
void i7_print_box(i7process *proc, i7val x);
|
||||
void i7_read(i7process *proc, i7val x);
|
||||
void glulx_glk(i7process_t *proc, i7val glk_api_selector, i7val varargc, i7val *z);
|
||||
i7val fn_i7_mgl_IndefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_DefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CIndefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CDefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_PrintShortName(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
void i7_print_name(i7process_t *proc, i7val x);
|
||||
void i7_print_object(i7process_t *proc, i7val x);
|
||||
void i7_print_box(i7process_t *proc, i7val x);
|
||||
void i7_read(i7process_t *proc, i7val x);
|
||||
#endif
|
||||
|
|
231
inform7/Manual/Calling Inform from C.w
Normal file
231
inform7/Manual/Calling Inform from C.w
Normal file
|
@ -0,0 +1,231 @@
|
|||
Calling Inform from C.
|
||||
|
||||
In 2021, Inform gained the ability to generate C code which could be used as
|
||||
part of a larger program, for example in a framework such as Unity.
|
||||
|
||||
@h Introduction.
|
||||
Users of the Inform UI apps make programs which are usually textual simulations,
|
||||
and which are in any case sealed boxes running on virtual machines such as Glulx.
|
||||
Although very creative things have been done to hook those up to other machinery,
|
||||
usually via Javascript trickery when running those VMs as part of a website, it
|
||||
is mostly impractical to use those tricks to have Inform 7 work as part of a
|
||||
bigger program not written in Inform.
|
||||
|
||||
However, it is now, as of 2021, possible to use Inform equally well as a
|
||||
command-line tool and to use it to generate code which can link into a C
|
||||
program, and indeed it's therefore quite easy to have a hybrid program --
|
||||
part Inform, part C/C++ (or indeed anything else which can call C functions).
|
||||
For example, one could imagine a game developed with Unity which uses a
|
||||
portion of Inform 7 code to manage, say, just world-modelling or text
|
||||
generation services.
|
||||
|
||||
The following documentation covers how to build hybrid Inform-and-C programs.
|
||||
|
||||
@h Example makes.
|
||||
The Inform source repository includes a small suite of examples of such hybrid
|
||||
programs, stored at:
|
||||
= (text as ConsoleText)
|
||||
inform/inform7/Tests/Test Makes/Eg1-C
|
||||
inform/inform7/Tests/Test Makes/Eg2-C
|
||||
...
|
||||
=
|
||||
These toy programs are automatically built and tested as part of the Inform 7
|
||||
test suite, but they can also be copied and then experimented with. We'll call
|
||||
these projects "makes", and indeed each one contains a makefile. Change directory
|
||||
to it, type |make|, and an executable should appear.
|
||||
|
||||
The makefiles assume that you have access to the |clang| C compiler, but |gcc|
|
||||
could equally be used, or any C-99 compatible tool. The makefiles open with a
|
||||
reference to the location of the |inform7| installation on your filing system;
|
||||
so that opening will need to be edited if you move these projects out of
|
||||
|inform/inform7/Tests/Test Makes/|.
|
||||
|
||||
@h Example 1: Hello World.
|
||||
This first example is not even a hybrid. It compiles the simplest of Basic Inform
|
||||
programs:
|
||||
= (text as Inform 7)
|
||||
To begin:
|
||||
say "Hello world.";
|
||||
=
|
||||
...by translating it into a C program, which it then compiles, to produce a native
|
||||
executable. The following shows this working:
|
||||
= (text as ConsoleText)
|
||||
$ cd "inform/inform7/Tests/Test Makes/Eg1-C"
|
||||
$ ls
|
||||
Eg1.i7 ideal_output.txt makefile
|
||||
$ make -silent
|
||||
$ ls
|
||||
Eg1 Eg1-I.o ideal_output.txt
|
||||
Eg1-I.c Eg1.i7 makefile
|
||||
$ ./Eg1
|
||||
Hello world.
|
||||
=
|
||||
|ideal_output.txt| contains the text which the program should print, if it works
|
||||
correctly: this is used in testing. The make process accomplished the following:
|
||||
= (text)
|
||||
Eg1.i7 source in Inform 7
|
||||
|
|
||||
| inform7
|
||||
\|/
|
||||
Eg1-I.c source in C
|
||||
|
|
||||
| clang (acting as C compiler)
|
||||
\|/
|
||||
Eg1-I.o C object file
|
||||
|
|
||||
| clang (acting as linker)
|
||||
\|/
|
||||
Eg1 native executable
|
||||
=
|
||||
As with all of the examples, |make run| runs the program, building it if necessary;
|
||||
and |make clean| removes the files generated by the build process, returning the
|
||||
directory to its mint condition. In this case, that means deleting |Eg1-I.c|,
|
||||
|Eg1-I.o| and |Eg1|. Note the filenaming convention: the |-I| in the name of, say,
|
||||
|Eg1-I.c| is supposed to signal that the file was derived from an Inform original.
|
||||
|
||||
The makefile for Example 1 is simple, and in a full build it runs the following:
|
||||
= (text as ConsoleText)
|
||||
$ make
|
||||
../../../Tangled/inform7 -silence -basic -format=C -o Eg1-I.c Eg1.i7
|
||||
clang -g -std=c99 -c -I ../../../Internal/Miscellany -o Eg1-I.o Eg1-I.c
|
||||
clang -g -o Eg1 Eg1-I.o
|
||||
=
|
||||
All three tools compile silently if no errors occur, though in the case of //inform7//
|
||||
that's only because |-silence| was asked for. |-basic| indicates that this is a
|
||||
Basic Inform program, which is not asked to contain a command parser, for example.
|
||||
|-format=C| makes the output a C program rather than an Inform 6 one, of course.
|
||||
|
||||
The |-I ../../../Internal/Miscellany| switch when using |clang| as C compiler
|
||||
tells it that this directory should be in the search path for |#include| files.
|
||||
This is needed so that:
|
||||
= (text as C)
|
||||
#include "inform7_clib.h"
|
||||
=
|
||||
will work. This header file is supplied in every Inform installation at:
|
||||
= (text)
|
||||
inform7/Internal/Miscellany/inform7_clib.h
|
||||
=
|
||||
|
||||
@h Example 2: Hello Hello.
|
||||
This time we begin with both a C program and an Inform program, both of which
|
||||
want to say hello: we want to compile these into a single executable. Now the
|
||||
makefile has an extra step:
|
||||
= (text)
|
||||
Eg2.c Eg2.i7 source in C and Inform 7 respectively
|
||||
| |
|
||||
| | inform7
|
||||
| \|/
|
||||
| Eg2-I.c source in C
|
||||
| |
|
||||
| clang | clang (acting as C compiler)
|
||||
\|/ \|/
|
||||
Eg2.o Eg2-I.o C object files
|
||||
| |
|
||||
+------+------+
|
||||
|
|
||||
| clang (acting as linker)
|
||||
\|/
|
||||
Eg2 native executable
|
||||
=
|
||||
That will be the basic plan for all the remaining examples too, so we'll stop
|
||||
with these diagrams. Here |Eg2.c| is the C part of our source code, and is not
|
||||
to be confused with |Eg2-I.c|, which is the conversion to C of the Inform part
|
||||
of our source. Each produces an object file, and the link unites these into a
|
||||
single executable.
|
||||
|
||||
The Inform source reads:
|
||||
= (text as Inform 7)
|
||||
To begin:
|
||||
say "Hello from the Inform source."
|
||||
=
|
||||
The C source could be very easy too:
|
||||
= (text as C)
|
||||
#include "inform7_clib.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("Hello from the C source code.\n");
|
||||
i7process_t proc = i7_new_process();
|
||||
i7_run_process(&proc);
|
||||
return 0;
|
||||
}
|
||||
=
|
||||
When run, this produces:
|
||||
= (text as ConsoleText)
|
||||
Hello from the C source code.
|
||||
Hello from the Inform source.
|
||||
=
|
||||
Note that the C program is the one in command here: in particular, it contains
|
||||
|main|. That means of course that |Eg2-I.c| must not include a |main| function,
|
||||
or the linking stage will throw an error; whereas |Eg1-I.c|, in the previous example,
|
||||
did have to include |main|. So clearly something must be different about the
|
||||
command to generate C from Inform this time.
|
||||
|
||||
This issue is resolved by tweaking the |-format| requested. Whereas the makefile
|
||||
for example 1 asked |inform7| for |-format=C|, the makefile for example 2 asks it
|
||||
for |-format=C/no-main|. The |no-main| tells the part of Inform which generates C
|
||||
code not to make a |main| of its own, and so all is well. |-format=C/main| is
|
||||
the default arrangement, to which |-format=C| is equivalent.
|
||||
|
||||
@ The type |i7process_t| is used for an "Inform process".[1] A single C program can
|
||||
contain any number of these, and indeed could call them independently from
|
||||
multiple threads at the same time: but they are all instances of the same Inform
|
||||
program running, each with its own independent state and data. So, for example,
|
||||
two different Inform processes will have two different values for the same Inform
|
||||
variable name. In effect, they are isolated, independent virtual machines, each
|
||||
running a copy of the same program.
|
||||
|
||||
It is essential to create a process as shown, with a call to |i7_new_process|.
|
||||
Once created, though, the same process can be run multiple times. If we had
|
||||
written,
|
||||
= (text as C)
|
||||
i7process_t proc = i7_new_process();
|
||||
i7_run_process(&proc);
|
||||
i7_run_process(&proc);
|
||||
=
|
||||
then the result would have been:
|
||||
= (text as ConsoleText)
|
||||
Hello from the C source code.
|
||||
Hello from the Inform source.
|
||||
Hello from the Inform source.
|
||||
=
|
||||
|
||||
[1] Strictly speaking, typedef names ending |_t| are reserved for use by the
|
||||
POSIX standard, so this is a sin, but really, I don't see POSIX ever needing names
|
||||
prefixed |i7|, and besides, everybody does it.
|
||||
|
||||
@ A note about thread safety. Suppose the C program runs multiple threads. Then:
|
||||
|
||||
(a) It is perfectly thread-safe for two or more threads to each be running
|
||||
Inform processes simultaneously, but
|
||||
(b) They must be different |i7process_t| objects, and
|
||||
(c) They do not share any data: each process has its own data. If there is an
|
||||
Inform variable called "favourite colour", for example, two different |i7process_t|
|
||||
processes running at the same time will have two different values of this.
|
||||
|
||||
Note that all |i7process_t| instances are running the same Inform program. You
|
||||
cannot, at present, link multiple different Inform programs into the same C
|
||||
program.
|
||||
|
||||
@ Formally speaking, |i7_run_process| returns the entire Inform program to its
|
||||
end, and then returns an exit code: 0 if that program exited cleanly, and 1
|
||||
if it halted with a fatal error, for example through dividing by zero, or
|
||||
failing a memory allocation. In that event, an error message will be printed
|
||||
to |stderr|.
|
||||
|
||||
So, for the sake of tidiness, the full |Eg2.c| reads:
|
||||
= (text as C)
|
||||
#include "inform7_clib.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("Hello from the C source code.\n");
|
||||
i7process_t proc = i7_new_process();
|
||||
int exit_code = i7_run_process(&proc);
|
||||
if (exit_code == 1) {
|
||||
printf("*** Fatal error: halted ***\n");
|
||||
fflush(stdout); fflush(stderr);
|
||||
}
|
||||
return exit_code;
|
||||
}
|
||||
=
|
||||
Example 2 is in fact so simple that it is impossible for the exit code to be
|
||||
other than 0, but checking the exit code is good practice.
|
|
@ -1,2 +1 @@
|
|||
|
||||
Hello world.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#include "inform7_clib.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("Welcome to this hybrid program!\n");
|
||||
i7process proc = i7_new_process();
|
||||
i7_run_process(&proc, i7_default_receiver);
|
||||
if (proc.termination_code == 1) {
|
||||
printf("Hello from the C source code.\n");
|
||||
i7process_t proc = i7_new_process();
|
||||
int exit_code = i7_run_process(&proc);
|
||||
if (exit_code == 1) {
|
||||
printf("*** Fatal error: halted ***\n");
|
||||
fflush(stdout); fflush(stderr);
|
||||
}
|
||||
return proc.termination_code;
|
||||
return exit_code;
|
||||
}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
To begin:
|
||||
say "Hello to my external C friend.";
|
||||
say "Hello from the Inform source."
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
Welcome to this hybrid program!
|
||||
|
||||
Hello to my external C friend.
|
||||
Hello from the C source code.
|
||||
Hello from the Inform source.
|
||||
|
|
|
@ -48,13 +48,15 @@
|
|||
! On the basis of which:
|
||||
|
||||
if: $VM G
|
||||
set: $FORMAT = ulx
|
||||
set: $FORMAT = Inform6/32
|
||||
set: $EXT = ulx
|
||||
set: $I6OPTIONS = -E2SDwGx
|
||||
set: $INT = $GINT
|
||||
set: $INTNAME = dumb-glulxe
|
||||
set: $INTOPTIONS = -u -q
|
||||
else
|
||||
set: $FORMAT = z8
|
||||
set: $FORMAT = Inform6/16
|
||||
set: $EXT = z8
|
||||
set: $I6OPTIONS = -E2SDwv8x
|
||||
set: $INT = $ZINT
|
||||
set: $INTNAME = dumb-frotz
|
||||
|
@ -113,14 +115,14 @@
|
|||
set: $TOUT = $PATH/_Textual/$CASE.intert
|
||||
set: $COUT = $PATH/_C/$CASE.c
|
||||
set: $OFILE = $WORK/Example.inform/Build/$CASE.o
|
||||
step: $I7 `$I7OPTIONS -format=$FORMAT -project $WORK/Example.inform -variable *tout=$TOUT -variable *out=$COUT $PIPELINE >$I7CONSOLE 2>&1
|
||||
step: $I7 -format=C $WORK/Example.inform/Source/story.ni -variable *tout=$TOUT -o $COUT `$PIPELINE >$I7CONSOLE 2>&1
|
||||
or: 'failed with Problem message(s)' $I7CONSOLE
|
||||
|
||||
set: $CCCONSOLE = $WORK/Example.inform/Build/cc_output.txt
|
||||
set: $LINKCONSOLE = $WORK/Example.inform/Build/link_output.txt
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/final
|
||||
|
||||
step: clang -g -std=c99 -c -o $OFILE $COUT -ferror-limit=10000 -Wno-parentheses-equality -Wno-unused-value -D DEBUG -I $I7CLIB >$CCCONSOLE 2>&1
|
||||
step: clang -g -std=c99 -c -o $OFILE $COUT -ferror-limit=10000 -Wno-unused-value -I $I7CLIB >$CCCONSOLE 2>&1
|
||||
or: 'failed to compile C' $CCCONSOLE
|
||||
|
||||
step: clang -g -o $STORYFILE $OFILE -ferror-limit=10000 >$LINKCONSOLE 2>&1
|
||||
|
@ -150,7 +152,7 @@
|
|||
or: 'passed (matching cached I6 known to work)'
|
||||
|
||||
set: $I6CONSOLE = $WORK/Example.inform/Build/i6_output.txt
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/output.$FORMAT
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/output.$EXT
|
||||
|
||||
step: $I6 `$I6OPTIONS $I6SOURCE $STORYFILE >$I6CONSOLE 2>&1
|
||||
or: 'failed to pass through Inform 6' $I6CONSOLE
|
||||
|
@ -204,13 +206,15 @@
|
|||
! On the basis of which:
|
||||
|
||||
if: $VM G
|
||||
set: $FORMAT = ulx
|
||||
set: $FORMAT = Inform6/32
|
||||
set: $EXT = ulx
|
||||
set: $I6OPTIONS = -E2SDwGx
|
||||
set: $INT = $GINT
|
||||
set: $INTNAME = dumb-glulxe
|
||||
set: $INTOPTIONS = -u -q
|
||||
else
|
||||
set: $FORMAT = z8
|
||||
set: $FORMAT = Inform6/16
|
||||
set: $EXT = z8
|
||||
set: $I6OPTIONS = -E2SDwv8x
|
||||
set: $INT = $ZINT
|
||||
set: $INTNAME = dumb-frotz
|
||||
|
@ -273,14 +277,14 @@
|
|||
set: $TOUT = $PATH/_Textual/$CASE.intert
|
||||
set: $COUT = $PATH/_C/$CASE.c
|
||||
set: $OFILE = $WORK/Example.inform/Build/$CASE.o
|
||||
step: $I7 `$I7OPTIONS -format=$FORMAT -project $WORK/Example.inform -variable *tout=$TOUT -variable *out=$COUT $PIPELINE >$I7CONSOLE 2>&1
|
||||
step: $I7 -basic -format=C $WORK/Example.inform/Source/story.ni -variable *tout=$TOUT -o $COUT `$PIPELINE >$I7CONSOLE 2>&1
|
||||
or: 'failed with Problem message(s)' $I7CONSOLE
|
||||
|
||||
set: $CCCONSOLE = $WORK/Example.inform/Build/cc_output.txt
|
||||
set: $LINKCONSOLE = $WORK/Example.inform/Build/link_output.txt
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/final
|
||||
|
||||
step: clang -g -std=c99 -c -o $OFILE $COUT -ferror-limit=10000 -Wno-parentheses-equality -D DEBUG -I $I7CLIB >$CCCONSOLE 2>&1
|
||||
step: clang -g -std=c99 -c -o $OFILE $COUT -ferror-limit=10000 -I $I7CLIB >$CCCONSOLE 2>&1
|
||||
or: 'failed to compile C' $CCCONSOLE
|
||||
|
||||
step: clang -g -o $STORYFILE $OFILE -ferror-limit=10000 >$LINKCONSOLE 2>&1
|
||||
|
@ -313,7 +317,7 @@
|
|||
or: 'passed (matching cached I6 known to work)'
|
||||
|
||||
set: $I6CONSOLE = $WORK/Example.inform/Build/i6_output.txt
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/output.$FORMAT
|
||||
set: $STORYFILE = $WORK/Example.inform/Build/output.$EXT
|
||||
|
||||
step: $I6 `$I6OPTIONS $I6SOURCE $STORYFILE >$I6CONSOLE 2>&1
|
||||
or: 'failed to pass through Inform 6' $I6CONSOLE
|
||||
|
@ -361,9 +365,11 @@
|
|||
! On the basis of which:
|
||||
|
||||
if: $VM G
|
||||
set: $FORMAT = ulx
|
||||
set: $FORMAT = Inform6/32
|
||||
set: $EXT = ulx
|
||||
else
|
||||
set: $FORMAT = z8
|
||||
set: $FORMAT = Inform6/16
|
||||
set: $EXT = z8
|
||||
endif
|
||||
|
||||
! Now we extract the source text from whatever file originated the test
|
||||
|
@ -410,9 +416,11 @@
|
|||
set: $VM = Z
|
||||
endif
|
||||
if: $VM G
|
||||
set: $FORMAT = ulx
|
||||
set: $FORMAT = Inform6/32
|
||||
set: $EXT = ulx
|
||||
else
|
||||
set: $FORMAT = z8
|
||||
set: $FORMAT = Inform6/16
|
||||
set: $EXT = z8
|
||||
endif
|
||||
|
||||
extract: $WORK/Example.inform/Source/story.ni $VM
|
||||
|
@ -469,9 +477,11 @@
|
|||
! On the basis of which:
|
||||
|
||||
if: $VM G
|
||||
set: $FORMAT = ulx
|
||||
set: $FORMAT = Inform6/32
|
||||
set: $EXT = ulx
|
||||
else
|
||||
set: $FORMAT = z8
|
||||
set: $FORMAT = Inform6/16
|
||||
set: $EXT = z8
|
||||
endif
|
||||
set: $I7OPTIONS = -format=$FORMAT -no-progress -fixtime -rng -sigils -log nothing -external inform7/Tests -transient $WORK/Transient -no-index -internal $INTERNAL
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@ int CArithmetic::compile_primitive(code_generation *gen, inter_ti bip, inter_tre
|
|||
@ Random integers:
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void glulx_random(i7process *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_random(i7process *proc, i7val x);
|
||||
void glulx_setrandom(i7process *proc, i7val s);
|
||||
void glulx_random(i7process_t *proc, i7val x, i7val *y);
|
||||
i7val fn_i7_mgl_random(i7process_t *proc, i7val x);
|
||||
void glulx_setrandom(i7process_t *proc, i7val s);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
|
@ -51,7 +51,7 @@ uint32_t i7_random() {
|
|||
return (random() << 16) ^ random();
|
||||
}
|
||||
|
||||
void glulx_random(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_random(i7process_t *proc, i7val x, i7val *y) {
|
||||
uint32_t value;
|
||||
if (x == 0) value = i7_random();
|
||||
else if (x >= 1) value = i7_random() % (uint32_t) (x);
|
||||
|
@ -59,7 +59,7 @@ void glulx_random(i7process *proc, i7val x, i7val *y) {
|
|||
*y = (i7val) value;
|
||||
}
|
||||
|
||||
i7val fn_i7_mgl_random(i7process *proc, i7val x) {
|
||||
i7val fn_i7_mgl_random(i7process_t *proc, i7val x) {
|
||||
i7val r;
|
||||
glulx_random(proc, x, &r);
|
||||
return r+1;
|
||||
|
@ -67,7 +67,7 @@ i7val fn_i7_mgl_random(i7process *proc, i7val x) {
|
|||
|
||||
/* Set the random-number seed; zero means use as random a source as
|
||||
possible. */
|
||||
void glulx_setrandom(i7process *proc, i7val s) {
|
||||
void glulx_setrandom(i7process_t *proc, i7val s) {
|
||||
uint32_t seed;
|
||||
*((i7val *) &seed) = s;
|
||||
if (seed == 0) seed = time(NULL);
|
||||
|
@ -85,63 +85,63 @@ Note that floating-point numbers are stored in |i7val| values at runtime by
|
|||
storing |float| (not, alas, |double|) values as if they were four-byte integers.
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void glulx_add(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sub(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_neg(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_mul(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_div(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_div_r(i7process *proc, i7val x, i7val y);
|
||||
void glulx_mod(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_mod_r(i7process *proc, i7val x, i7val y);
|
||||
void glulx_add(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sub(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_neg(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_mul(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_div(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_div_r(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_mod(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
i7val glulx_mod_r(i7process_t *proc, i7val x, i7val y);
|
||||
typedef float gfloat32;
|
||||
i7val encode_float(gfloat32 val);
|
||||
gfloat32 decode_float(i7val val);
|
||||
void glulx_exp(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_fadd(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fdiv(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_floor(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_fmod(i7process *proc, i7val x, i7val y, i7val *z, i7val *w);
|
||||
void glulx_fmul(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fsub(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_ftonumn(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_ftonumz(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_numtof(i7process *proc, i7val x, i7val *y);
|
||||
int glulx_jfeq(i7process *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfne(i7process *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfge(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jflt(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jisinf(i7process *proc, i7val x);
|
||||
int glulx_jisnan(i7process *proc, i7val x);
|
||||
void glulx_log(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_acos(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_asin(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_atan(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_ceil(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_cos(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_pow(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sin(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_sqrt(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_tan(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_exp(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_fadd(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fdiv(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_floor(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_fmod(i7process_t *proc, i7val x, i7val y, i7val *z, i7val *w);
|
||||
void glulx_fmul(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_fsub(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_ftonumn(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_ftonumz(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_numtof(i7process_t *proc, i7val x, i7val *y);
|
||||
int glulx_jfeq(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfne(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
int glulx_jfge(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jflt(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jisinf(i7process_t *proc, i7val x);
|
||||
int glulx_jisnan(i7process_t *proc, i7val x);
|
||||
void glulx_log(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_acos(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_asin(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_atan(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_ceil(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_cos(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_pow(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_sin(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_sqrt(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_tan(i7process_t *proc, i7val x, i7val *y);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void glulx_add(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_add(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (z) *z = x + y;
|
||||
}
|
||||
|
||||
void glulx_sub(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_sub(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (z) *z = x - y;
|
||||
}
|
||||
|
||||
void glulx_neg(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_neg(i7process_t *proc, i7val x, i7val *y) {
|
||||
if (y) *y = -x;
|
||||
}
|
||||
|
||||
void glulx_mul(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_mul(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (z) *z = x * y;
|
||||
}
|
||||
|
||||
void glulx_div(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_div(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (y == 0) { printf("Division of %d by 0\n", x); i7_fatal_exit(proc); return; }
|
||||
int result, ax, ay;
|
||||
/* Since C doesn't guarantee the results of division of negative
|
||||
|
@ -170,13 +170,13 @@ void glulx_div(i7process *proc, i7val x, i7val y, i7val *z) {
|
|||
if (z) *z = result;
|
||||
}
|
||||
|
||||
i7val glulx_div_r(i7process *proc, i7val x, i7val y) {
|
||||
i7val glulx_div_r(i7process_t *proc, i7val x, i7val y) {
|
||||
i7val z;
|
||||
glulx_div(proc, x, y, &z);
|
||||
return z;
|
||||
}
|
||||
|
||||
void glulx_mod(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_mod(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (y == 0) { printf("Division of %d by 0\n", x); i7_fatal_exit(proc); return; }
|
||||
int result, ax, ay;
|
||||
if (y < 0) {
|
||||
|
@ -194,7 +194,7 @@ void glulx_mod(i7process *proc, i7val x, i7val y, i7val *z) {
|
|||
if (z) *z = result;
|
||||
}
|
||||
|
||||
i7val glulx_mod_r(i7process *proc, i7val x, i7val y) {
|
||||
i7val glulx_mod_r(i7process_t *proc, i7val x, i7val y) {
|
||||
i7val z;
|
||||
glulx_mod(proc, x, y, &z);
|
||||
return z;
|
||||
|
@ -212,23 +212,23 @@ gfloat32 decode_float(i7val val) {
|
|||
return res;
|
||||
}
|
||||
|
||||
void glulx_exp(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_exp(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(expf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_fadd(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_fadd(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
*z = encode_float(decode_float(x) + decode_float(y));
|
||||
}
|
||||
|
||||
void glulx_fdiv(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_fdiv(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
*z = encode_float(decode_float(x) / decode_float(y));
|
||||
}
|
||||
|
||||
void glulx_floor(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_floor(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(floorf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_fmod(i7process *proc, i7val x, i7val y, i7val *z, i7val *w) {
|
||||
void glulx_fmod(i7process_t *proc, i7val x, i7val y, i7val *z, i7val *w) {
|
||||
float fx = decode_float(x);
|
||||
float fy = decode_float(y);
|
||||
float fquot = fmodf(fx, fy);
|
||||
|
@ -244,15 +244,15 @@ void glulx_fmod(i7process *proc, i7val x, i7val y, i7val *z, i7val *w) {
|
|||
if (w) *w = rem;
|
||||
}
|
||||
|
||||
void glulx_fmul(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_fmul(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
*z = encode_float(decode_float(x) * decode_float(y));
|
||||
}
|
||||
|
||||
void glulx_fsub(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_fsub(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
*z = encode_float(decode_float(x) - decode_float(y));
|
||||
}
|
||||
|
||||
void glulx_ftonumn(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_ftonumn(i7process_t *proc, i7val x, i7val *y) {
|
||||
float fx = decode_float(x);
|
||||
i7val result;
|
||||
if (!signbit(fx)) {
|
||||
|
@ -270,7 +270,7 @@ void glulx_ftonumn(i7process *proc, i7val x, i7val *y) {
|
|||
*y = result;
|
||||
}
|
||||
|
||||
void glulx_ftonumz(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_ftonumz(i7process_t *proc, i7val x, i7val *y) {
|
||||
float fx = decode_float(x);
|
||||
i7val result;
|
||||
if (!signbit(fx)) {
|
||||
|
@ -288,11 +288,11 @@ void glulx_ftonumz(i7process *proc, i7val x, i7val *y) {
|
|||
*y = result;
|
||||
}
|
||||
|
||||
void glulx_numtof(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_numtof(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float((float) x);
|
||||
}
|
||||
|
||||
int glulx_jfeq(i7process *proc, i7val x, i7val y, i7val z) {
|
||||
int glulx_jfeq(i7process_t *proc, i7val x, i7val y, i7val z) {
|
||||
int result;
|
||||
if ((z & 0x7F800000) == 0x7F800000 && (z & 0x007FFFFF) != 0) {
|
||||
/* The delta is NaN, which can never match. */
|
||||
|
@ -311,7 +311,7 @@ int glulx_jfeq(i7process *proc, i7val x, i7val y, i7val z) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jfne(i7process *proc, i7val x, i7val y, i7val z) {
|
||||
int glulx_jfne(i7process_t *proc, i7val x, i7val y, i7val z) {
|
||||
int result;
|
||||
if ((z & 0x7F800000) == 0x7F800000 && (z & 0x007FFFFF) != 0) {
|
||||
/* The delta is NaN, which can never match. */
|
||||
|
@ -330,51 +330,51 @@ int glulx_jfne(i7process *proc, i7val x, i7val y, i7val z) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jfge(i7process *proc, i7val x, i7val y) {
|
||||
int glulx_jfge(i7process_t *proc, i7val x, i7val y) {
|
||||
if (decode_float(x) >= decode_float(y)) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jflt(i7process *proc, i7val x, i7val y) {
|
||||
int glulx_jflt(i7process_t *proc, i7val x, i7val y) {
|
||||
if (decode_float(x) < decode_float(y)) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jisinf(i7process *proc, i7val x) {
|
||||
int glulx_jisinf(i7process_t *proc, i7val x) {
|
||||
if (x == 0x7F800000 || x == 0xFF800000) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jisnan(i7process *proc, i7val x) {
|
||||
int glulx_jisnan(i7process_t *proc, i7val x) {
|
||||
if ((x & 0x7F800000) == 0x7F800000 && (x & 0x007FFFFF) != 0) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void glulx_log(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_log(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(logf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_acos(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_acos(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(acosf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_asin(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_asin(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(asinf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_atan(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_atan(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(atanf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_ceil(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_ceil(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(ceilf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_cos(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_cos(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(cosf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_pow(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_pow(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (decode_float(x) == 1.0f)
|
||||
*z = encode_float(1.0f);
|
||||
else if ((decode_float(y) == 0.0f) || (decode_float(y) == -0.0f))
|
||||
|
@ -385,15 +385,15 @@ void glulx_pow(i7process *proc, i7val x, i7val y, i7val *z) {
|
|||
*z = encode_float(powf(decode_float(x), decode_float(y)));
|
||||
}
|
||||
|
||||
void glulx_sin(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_sin(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(sinf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_sqrt(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_sqrt(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(sqrtf(decode_float(x)));
|
||||
}
|
||||
|
||||
void glulx_tan(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_tan(i7process_t *proc, i7val x, i7val *y) {
|
||||
*y = encode_float(tanf(decode_float(x)));
|
||||
}
|
||||
=
|
||||
|
|
|
@ -24,8 +24,8 @@ void CAssembly::end(code_generation *gen) {
|
|||
|
||||
= (text to inform7_clib.h)
|
||||
void i7_debug_stack(char *N);
|
||||
i7val i7_pull(i7process *proc);
|
||||
void i7_push(i7process *proc, i7val x);
|
||||
i7val i7_pull(i7process_t *proc);
|
||||
void i7_push(i7process_t *proc, i7val x);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
|
@ -37,12 +37,12 @@ void i7_debug_stack(char *N) {
|
|||
// printf("\n");
|
||||
}
|
||||
|
||||
i7val i7_pull(i7process *proc) {
|
||||
i7val i7_pull(i7process_t *proc) {
|
||||
if (proc->state.stack_pointer <= 0) { printf("Stack underflow\n"); int x = 0; printf("%d", 1/x); return (i7val) 0; }
|
||||
return proc->state.stack[--(proc->state.stack_pointer)];
|
||||
}
|
||||
|
||||
void i7_push(i7process *proc, i7val x) {
|
||||
void i7_push(i7process_t *proc, i7val x) {
|
||||
if (proc->state.stack_pointer >= I7_ASM_STACK_CAPACITY) { printf("Stack overflow\n"); return; }
|
||||
proc->state.stack[proc->state.stack_pointer++] = x;
|
||||
}
|
||||
|
@ -149,122 +149,122 @@ void CAssembly::assembly(code_generation_target *cgt, code_generation *gen,
|
|||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void glulx_accelfunc(i7process *proc, i7val x, i7val y);
|
||||
void glulx_accelparam(i7process *proc, i7val x, i7val y);
|
||||
void glulx_copy(i7process *proc, i7val x, i7val *y);
|
||||
void glulx_gestalt(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
int glulx_jeq(i7process *proc, i7val x, i7val y);
|
||||
void glulx_nop(i7process *proc);
|
||||
int glulx_jleu(i7process *proc, i7val x, i7val y);
|
||||
int glulx_jnz(i7process *proc, i7val x);
|
||||
int glulx_jz(i7process *proc, i7val x);
|
||||
void glulx_quit(i7process *proc);
|
||||
void glulx_setiosys(i7process *proc, i7val x, i7val y);
|
||||
void glulx_streamchar(i7process *proc, i7val x);
|
||||
void glulx_streamnum(i7process *proc, i7val x);
|
||||
void glulx_streamstr(i7process *proc, i7val x);
|
||||
void glulx_streamunichar(i7process *proc, i7val x);
|
||||
void glulx_ushiftr(i7process *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_aload(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_aloadb(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_accelfunc(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_accelparam(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_copy(i7process_t *proc, i7val x, i7val *y);
|
||||
void glulx_gestalt(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
int glulx_jeq(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_nop(i7process_t *proc);
|
||||
int glulx_jleu(i7process_t *proc, i7val x, i7val y);
|
||||
int glulx_jnz(i7process_t *proc, i7val x);
|
||||
int glulx_jz(i7process_t *proc, i7val x);
|
||||
void glulx_quit(i7process_t *proc);
|
||||
void glulx_setiosys(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_streamchar(i7process_t *proc, i7val x);
|
||||
void glulx_streamnum(i7process_t *proc, i7val x);
|
||||
void glulx_streamstr(i7process_t *proc, i7val x);
|
||||
void glulx_streamunichar(i7process_t *proc, i7val x);
|
||||
void glulx_ushiftr(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_aload(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_aloadb(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
#define serop_KeyIndirect (0x01)
|
||||
#define serop_ZeroKeyTerminates (0x02)
|
||||
#define serop_ReturnIndex (0x04)
|
||||
void glulx_binarysearch(i7process *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
void glulx_binarysearch(i7process_t *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
i7val numstructs, i7val keyoffset, i7val options, i7val *s1);
|
||||
void glulx_shiftl(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_restoreundo(i7process *proc, i7val *x);
|
||||
void glulx_saveundo(i7process *proc, i7val *x);
|
||||
void glulx_restart(i7process *proc);
|
||||
void glulx_restore(i7process *proc, i7val x, i7val y);
|
||||
void glulx_save(i7process *proc, i7val x, i7val y);
|
||||
void glulx_verify(i7process *proc, i7val x);
|
||||
void glulx_hasundo(i7process *proc, i7val *x);
|
||||
void glulx_discardundo(i7process *proc);
|
||||
void glulx_shiftl(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_restoreundo(i7process_t *proc, i7val *x);
|
||||
void glulx_saveundo(i7process_t *proc, i7val *x);
|
||||
void glulx_restart(i7process_t *proc);
|
||||
void glulx_restore(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_save(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_verify(i7process_t *proc, i7val x);
|
||||
void glulx_hasundo(i7process_t *proc, i7val *x);
|
||||
void glulx_discardundo(i7process_t *proc);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void glulx_accelfunc(i7process *proc, i7val x, i7val y) { /* Intentionally ignore */
|
||||
void glulx_accelfunc(i7process_t *proc, i7val x, i7val y) { /* Intentionally ignore */
|
||||
}
|
||||
|
||||
void glulx_accelparam(i7process *proc, i7val x, i7val y) { /* Intentionally ignore */
|
||||
void glulx_accelparam(i7process_t *proc, i7val x, i7val y) { /* Intentionally ignore */
|
||||
}
|
||||
|
||||
void glulx_copy(i7process *proc, i7val x, i7val *y) {
|
||||
void glulx_copy(i7process_t *proc, i7val x, i7val *y) {
|
||||
i7_debug_stack("glulx_copy");
|
||||
if (y) *y = x;
|
||||
}
|
||||
|
||||
void glulx_gestalt(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_gestalt(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
*z = 1;
|
||||
}
|
||||
|
||||
int glulx_jeq(i7process *proc, i7val x, i7val y) {
|
||||
int glulx_jeq(i7process_t *proc, i7val x, i7val y) {
|
||||
if (x == y) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void glulx_nop(i7process *proc) {
|
||||
void glulx_nop(i7process_t *proc) {
|
||||
}
|
||||
|
||||
int glulx_jleu(i7process *proc, i7val x, i7val y) {
|
||||
int glulx_jleu(i7process_t *proc, i7val x, i7val y) {
|
||||
i7uval ux, uy;
|
||||
*((i7val *) &ux) = x; *((i7val *) &uy) = y;
|
||||
if (ux <= uy) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jnz(i7process *proc, i7val x) {
|
||||
int glulx_jnz(i7process_t *proc, i7val x) {
|
||||
if (x != 0) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int glulx_jz(i7process *proc, i7val x) {
|
||||
int glulx_jz(i7process_t *proc, i7val x) {
|
||||
if (x == 0) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void glulx_quit(i7process *proc) {
|
||||
void glulx_quit(i7process_t *proc) {
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_setiosys(i7process *proc, i7val x, i7val y) {
|
||||
void glulx_setiosys(i7process_t *proc, i7val x, i7val y) {
|
||||
// Deliberately ignored: we are using stdout, not glk
|
||||
}
|
||||
|
||||
void glulx_streamchar(i7process *proc, i7val x) {
|
||||
void glulx_streamchar(i7process_t *proc, i7val x) {
|
||||
i7_print_char(proc, x);
|
||||
}
|
||||
|
||||
void glulx_streamnum(i7process *proc, i7val x) {
|
||||
void glulx_streamnum(i7process_t *proc, i7val x) {
|
||||
i7_print_decimal(proc, x);
|
||||
}
|
||||
|
||||
void glulx_streamstr(i7process *proc, i7val x) {
|
||||
void glulx_streamstr(i7process_t *proc, i7val x) {
|
||||
printf("Unimplemented: glulx_streamstr.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_streamunichar(i7process *proc, i7val x) {
|
||||
void glulx_streamunichar(i7process_t *proc, i7val x) {
|
||||
i7_print_char(proc, x);
|
||||
}
|
||||
|
||||
void glulx_ushiftr(i7process *proc, i7val x, i7val y, i7val z) {
|
||||
void glulx_ushiftr(i7process_t *proc, i7val x, i7val y, i7val z) {
|
||||
printf("Unimplemented: glulx_ushiftr.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_aload(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_aload(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
printf("Unimplemented: glulx_aload\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_aloadb(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_aloadb(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
printf("Unimplemented: glulx_aloadb\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void fetchkey(i7process *proc, unsigned char *keybuf, i7val key, i7val keysize, i7val options)
|
||||
void fetchkey(i7process_t *proc, unsigned char *keybuf, i7val key, i7val keysize, i7val options)
|
||||
{
|
||||
int ix;
|
||||
|
||||
|
@ -293,7 +293,7 @@ void fetchkey(i7process *proc, unsigned char *keybuf, i7val key, i7val keysize,
|
|||
}
|
||||
}
|
||||
|
||||
void glulx_binarysearch(i7process *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
void glulx_binarysearch(i7process_t *proc, i7val key, i7val keysize, i7val start, i7val structsize,
|
||||
i7val numstructs, i7val keyoffset, i7val options, i7val *s1) {
|
||||
if (s1 == NULL) return;
|
||||
unsigned char keybuf[4];
|
||||
|
@ -354,12 +354,12 @@ void glulx_binarysearch(i7process *proc, i7val key, i7val keysize, i7val start,
|
|||
*s1 = 0;
|
||||
}
|
||||
|
||||
void glulx_shiftl(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_shiftl(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
printf("Unimplemented: glulx_shiftl\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_restoreundo(i7process *proc, i7val *x) {
|
||||
void glulx_restoreundo(i7process_t *proc, i7val *x) {
|
||||
proc->just_undid = 1;
|
||||
if (i7_has_snapshot(proc)) {
|
||||
i7_restore_snapshot(proc);
|
||||
|
@ -372,37 +372,37 @@ void glulx_restoreundo(i7process *proc, i7val *x) {
|
|||
}
|
||||
}
|
||||
|
||||
void glulx_saveundo(i7process *proc, i7val *x) {
|
||||
void glulx_saveundo(i7process_t *proc, i7val *x) {
|
||||
proc->just_undid = 0;
|
||||
i7_save_snapshot(proc);
|
||||
if (x) *x = 0;
|
||||
}
|
||||
|
||||
void glulx_hasundo(i7process *proc, i7val *x) {
|
||||
void glulx_hasundo(i7process_t *proc, i7val *x) {
|
||||
i7val rv = 0; if (i7_has_snapshot(proc)) rv = 1;
|
||||
if (x) *x = rv;
|
||||
}
|
||||
|
||||
void glulx_discardundo(i7process *proc) {
|
||||
void glulx_discardundo(i7process_t *proc) {
|
||||
i7_destroy_latest_snapshot(proc);
|
||||
}
|
||||
|
||||
void glulx_restart(i7process *proc) {
|
||||
void glulx_restart(i7process_t *proc) {
|
||||
printf("Unimplemented: glulx_restart\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_restore(i7process *proc, i7val x, i7val y) {
|
||||
void glulx_restore(i7process_t *proc, i7val x, i7val y) {
|
||||
printf("Unimplemented: glulx_restore\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_save(i7process *proc, i7val x, i7val y) {
|
||||
void glulx_save(i7process_t *proc, i7val x, i7val y) {
|
||||
printf("Unimplemented: glulx_save\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_verify(i7process *proc, i7val x) {
|
||||
void glulx_verify(i7process_t *proc, i7val x) {
|
||||
printf("Unimplemented: glulx_verify\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ void CFunctionModel::begin(code_generation *gen) {
|
|||
void CFunctionModel::end(code_generation *gen) {
|
||||
generated_segment *saved = CodeGen::select(gen, c_stubs_at_eof_I7CGS);
|
||||
text_stream *OUT = CodeGen::current(gen);
|
||||
WRITE("i7val i7_gen_call(i7process *proc, i7val fn_ref, i7val *args, int argc) {\n"); INDENT;
|
||||
WRITE("i7val i7_gen_call(i7process_t *proc, i7val fn_ref, i7val *args, int argc) {\n"); INDENT;
|
||||
WRITE("int ssp = proc->state.stack_pointer;\n");
|
||||
WRITE("i7val rv = 0;\n");
|
||||
WRITE("switch (fn_ref) {\n"); INDENT;
|
||||
|
@ -111,14 +111,14 @@ void CFunctionModel::begin_function(code_generation_target *cgt, int pass, code_
|
|||
Str::clear(C_GEN_DATA(fndata.prototype));
|
||||
WRITE_TO(C_GEN_DATA(fndata.prototype), "i7val fn_");
|
||||
CNamespace::mangle(cgt, C_GEN_DATA(fndata.prototype), fn_name);
|
||||
WRITE_TO(C_GEN_DATA(fndata.prototype), "(i7process *proc");
|
||||
WRITE_TO(C_GEN_DATA(fndata.prototype), "(i7process_t *proc");
|
||||
}
|
||||
if (pass == 2) {
|
||||
C_GEN_DATA(fndata.current_fcf) = RETRIEVE_POINTER_final_c_function(fn->translation_data);
|
||||
text_stream *OUT = CodeGen::current(gen);
|
||||
WRITE("i7val fn_");
|
||||
CNamespace::mangle(cgt, OUT, fn_name);
|
||||
WRITE("(i7process *proc");
|
||||
WRITE("(i7process_t *proc");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -252,27 +252,27 @@ void CFunctionModel::declare_local_variable(code_generation_target *cgt, int pas
|
|||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
i7val i7_call_0(i7process *proc, i7val fn_ref);
|
||||
i7val i7_call_1(i7process *proc, i7val fn_ref, i7val v);
|
||||
i7val i7_call_2(i7process *proc, i7val fn_ref, i7val v, i7val v2);
|
||||
i7val i7_call_3(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_call_4(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4);
|
||||
i7val i7_call_5(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5);
|
||||
i7val i7_mcall_0(i7process *proc, i7val to, i7val prop);
|
||||
i7val i7_mcall_1(i7process *proc, i7val to, i7val prop, i7val v);
|
||||
i7val i7_mcall_2(i7process *proc, i7val to, i7val prop, i7val v, i7val v2);
|
||||
i7val i7_mcall_3(i7process *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_gen_call(i7process *proc, i7val fn_ref, i7val *args, int argc);
|
||||
void glulx_call(i7process *proc, i7val fn_ref, i7val varargc, i7val *z);
|
||||
i7val i7_call_0(i7process_t *proc, i7val fn_ref);
|
||||
i7val i7_call_1(i7process_t *proc, i7val fn_ref, i7val v);
|
||||
i7val i7_call_2(i7process_t *proc, i7val fn_ref, i7val v, i7val v2);
|
||||
i7val i7_call_3(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_call_4(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4);
|
||||
i7val i7_call_5(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5);
|
||||
i7val i7_mcall_0(i7process_t *proc, i7val to, i7val prop);
|
||||
i7val i7_mcall_1(i7process_t *proc, i7val to, i7val prop, i7val v);
|
||||
i7val i7_mcall_2(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2);
|
||||
i7val i7_mcall_3(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3);
|
||||
i7val i7_gen_call(i7process_t *proc, i7val fn_ref, i7val *args, int argc);
|
||||
void glulx_call(i7process_t *proc, i7val fn_ref, i7val varargc, i7val *z);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7val i7_call_0(i7process *proc, i7val fn_ref) {
|
||||
i7val i7_call_0(i7process_t *proc, i7val fn_ref) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
return i7_gen_call(proc, fn_ref, args, 0);
|
||||
}
|
||||
|
||||
i7val i7_mcall_0(i7process *proc, i7val to, i7val prop) {
|
||||
i7val i7_mcall_0(i7process_t *proc, i7val to, i7val prop) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
i7val saved = proc->state.variables[i7_var_self];
|
||||
proc->state.variables[i7_var_self] = to;
|
||||
|
@ -282,13 +282,13 @@ i7val i7_mcall_0(i7process *proc, i7val to, i7val prop) {
|
|||
return rv;
|
||||
}
|
||||
|
||||
i7val i7_call_1(i7process *proc, i7val fn_ref, i7val v) {
|
||||
i7val i7_call_1(i7process_t *proc, i7val fn_ref, i7val v) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v;
|
||||
return i7_gen_call(proc, fn_ref, args, 1);
|
||||
}
|
||||
|
||||
i7val i7_mcall_1(i7process *proc, i7val to, i7val prop, i7val v) {
|
||||
i7val i7_mcall_1(i7process_t *proc, i7val to, i7val prop, i7val v) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v;
|
||||
i7val saved = proc->state.variables[i7_var_self];
|
||||
|
@ -299,13 +299,13 @@ i7val i7_mcall_1(i7process *proc, i7val to, i7val prop, i7val v) {
|
|||
return rv;
|
||||
}
|
||||
|
||||
i7val i7_call_2(i7process *proc, i7val fn_ref, i7val v, i7val v2) {
|
||||
i7val i7_call_2(i7process_t *proc, i7val fn_ref, i7val v, i7val v2) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2;
|
||||
return i7_gen_call(proc, fn_ref, args, 2);
|
||||
}
|
||||
|
||||
i7val i7_mcall_2(i7process *proc, i7val to, i7val prop, i7val v, i7val v2) {
|
||||
i7val i7_mcall_2(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2;
|
||||
i7val saved = proc->state.variables[i7_var_self];
|
||||
|
@ -316,13 +316,13 @@ i7val i7_mcall_2(i7process *proc, i7val to, i7val prop, i7val v, i7val v2) {
|
|||
return rv;
|
||||
}
|
||||
|
||||
i7val i7_call_3(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3) {
|
||||
i7val i7_call_3(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2; args[2] = v3;
|
||||
return i7_gen_call(proc, fn_ref, args, 3);
|
||||
}
|
||||
|
||||
i7val i7_mcall_3(i7process *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3) {
|
||||
i7val i7_mcall_3(i7process_t *proc, i7val to, i7val prop, i7val v, i7val v2, i7val v3) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2; args[2] = v3;
|
||||
i7val saved = proc->state.variables[i7_var_self];
|
||||
|
@ -333,19 +333,19 @@ i7val i7_mcall_3(i7process *proc, i7val to, i7val prop, i7val v, i7val v2, i7val
|
|||
return rv;
|
||||
}
|
||||
|
||||
i7val i7_call_4(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4) {
|
||||
i7val i7_call_4(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2; args[2] = v3; args[3] = v4;
|
||||
return i7_gen_call(proc, fn_ref, args, 4);
|
||||
}
|
||||
|
||||
i7val i7_call_5(i7process *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5) {
|
||||
i7val i7_call_5(i7process_t *proc, i7val fn_ref, i7val v, i7val v2, i7val v3, i7val v4, i7val v5) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
args[0] = v; args[1] = v2; args[2] = v3; args[3] = v4; args[4] = v5;
|
||||
return i7_gen_call(proc, fn_ref, args, 5);
|
||||
}
|
||||
|
||||
void glulx_call(i7process *proc, i7val fn_ref, i7val varargc, i7val *z) {
|
||||
void glulx_call(i7process_t *proc, i7val fn_ref, i7val varargc, i7val *z) {
|
||||
i7val args[10]; for (int i=0; i<10; i++) args[i] = 0;
|
||||
for (int i=0; i<varargc; i++) args[i] = i7_pull(proc);
|
||||
i7val rv = i7_gen_call(proc, fn_ref, args, varargc);
|
||||
|
|
|
@ -47,8 +47,8 @@ int CInputOutputModel::compile_primitive(code_generation *gen, inter_ti bip, int
|
|||
#define i7_roman 2
|
||||
#define i7_underline 3
|
||||
#define i7_reverse 4
|
||||
void i7_style(i7process *proc, int what);
|
||||
void i7_font(i7process *proc, int what);
|
||||
void i7_style(i7process_t *proc, int what);
|
||||
void i7_font(i7process_t *proc, int what);
|
||||
|
||||
#define fileusage_Data (0x00)
|
||||
#define fileusage_SavedGame (0x01)
|
||||
|
@ -72,14 +72,14 @@ typedef struct i7_fileref {
|
|||
FILE *handle;
|
||||
} i7_fileref;
|
||||
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process *proc, i7val usage, i7val name, i7val rock);
|
||||
int i7_fseek(i7process *proc, int id, int pos, int origin);
|
||||
int i7_ftell(i7process *proc, int id);
|
||||
int i7_fopen(i7process *proc, int id, int mode);
|
||||
void i7_fclose(i7process *proc, int id);
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process *proc, i7val id);
|
||||
void i7_fputc(i7process *proc, int c, int id);
|
||||
int i7_fgetc(i7process *proc, int id);
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process_t *proc, i7val usage, i7val name, i7val rock);
|
||||
int i7_fseek(i7process_t *proc, int id, int pos, int origin);
|
||||
int i7_ftell(i7process_t *proc, int id);
|
||||
int i7_fopen(i7process_t *proc, int id, int mode);
|
||||
void i7_fclose(i7process_t *proc, int id);
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process_t *proc, i7val id);
|
||||
void i7_fputc(i7process_t *proc, int c, int id);
|
||||
int i7_fgetc(i7process_t *proc, int id);
|
||||
typedef struct i7_stream {
|
||||
FILE *to_file;
|
||||
i7val to_file_id;
|
||||
|
@ -97,21 +97,21 @@ typedef struct i7_stream {
|
|||
int end_position;
|
||||
int owned_by_window_id;
|
||||
} i7_stream;
|
||||
i7val i7_do_glk_stream_get_current(i7process *proc);
|
||||
i7_stream i7_new_stream(i7process *proc, FILE *F, int win_id);
|
||||
i7val i7_do_glk_stream_get_current(i7process_t *proc);
|
||||
i7_stream i7_new_stream(i7process_t *proc, FILE *F, int win_id);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void i7_style(i7process *proc, int what) {
|
||||
void i7_style(i7process_t *proc, int what) {
|
||||
}
|
||||
|
||||
void i7_font(i7process *proc, int what) {
|
||||
void i7_font(i7process_t *proc, int what) {
|
||||
}
|
||||
|
||||
i7_fileref filerefs[128 + 32];
|
||||
int i7_no_filerefs = 0;
|
||||
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process *proc, i7val usage, i7val name, i7val rock) {
|
||||
i7val i7_do_glk_fileref_create_by_name(i7process_t *proc, i7val usage, i7val name, i7val rock) {
|
||||
if (i7_no_filerefs >= 128) {
|
||||
fprintf(stderr, "Out of streams\n"); i7_fatal_exit(proc);
|
||||
}
|
||||
|
@ -130,20 +130,20 @@ i7val i7_do_glk_fileref_create_by_name(i7process *proc, i7val usage, i7val name,
|
|||
return id;
|
||||
}
|
||||
|
||||
int i7_fseek(i7process *proc, int id, int pos, int origin) {
|
||||
int i7_fseek(i7process_t *proc, int id, int pos, int origin) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle == NULL) { fprintf(stderr, "File not open\n"); i7_fatal_exit(proc); }
|
||||
return fseek(filerefs[id].handle, pos, origin);
|
||||
}
|
||||
|
||||
int i7_ftell(i7process *proc, int id) {
|
||||
int i7_ftell(i7process_t *proc, int id) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle == NULL) { fprintf(stderr, "File not open\n"); i7_fatal_exit(proc); }
|
||||
int t = ftell(filerefs[id].handle);
|
||||
return t;
|
||||
}
|
||||
|
||||
int i7_fopen(i7process *proc, int id, int mode) {
|
||||
int i7_fopen(i7process_t *proc, int id, int mode) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle) { fprintf(stderr, "File already open\n"); i7_fatal_exit(proc); }
|
||||
char *c_mode = "r";
|
||||
|
@ -160,7 +160,7 @@ int i7_fopen(i7process *proc, int id, int mode) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
void i7_fclose(i7process *proc, int id) {
|
||||
void i7_fclose(i7process_t *proc, int id) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle == NULL) { fprintf(stderr, "File not open\n"); i7_fatal_exit(proc); }
|
||||
fclose(filerefs[id].handle);
|
||||
|
@ -168,7 +168,7 @@ void i7_fclose(i7process *proc, int id) {
|
|||
}
|
||||
|
||||
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process *proc, i7val id) {
|
||||
i7val i7_do_glk_fileref_does_file_exist(i7process_t *proc, i7val id) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle) return 1;
|
||||
if (i7_fopen(proc, id, filemode_Read)) {
|
||||
|
@ -177,13 +177,13 @@ i7val i7_do_glk_fileref_does_file_exist(i7process *proc, i7val id) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void i7_fputc(i7process *proc, int c, int id) {
|
||||
void i7_fputc(i7process_t *proc, int c, int id) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle == NULL) { fprintf(stderr, "File not open\n"); i7_fatal_exit(proc); }
|
||||
fputc(c, filerefs[id].handle);
|
||||
}
|
||||
|
||||
int i7_fgetc(i7process *proc, int id) {
|
||||
int i7_fgetc(i7process_t *proc, int id) {
|
||||
if ((id < 0) || (id >= 128)) { fprintf(stderr, "Too many files\n"); i7_fatal_exit(proc); }
|
||||
if (filerefs[id].handle == NULL) { fprintf(stderr, "File not open\n"); i7_fatal_exit(proc); }
|
||||
int c = fgetc(filerefs[id].handle);
|
||||
|
@ -196,16 +196,16 @@ i7_stream i7_memory_streams[I7_MAX_STREAMS];
|
|||
|
||||
i7val i7_stdout_id = 0, i7_stderr_id = 1, i7_str_id = 0;
|
||||
|
||||
i7val i7_do_glk_stream_get_current(i7process *proc) {
|
||||
i7val i7_do_glk_stream_get_current(i7process_t *proc) {
|
||||
return i7_str_id;
|
||||
}
|
||||
|
||||
void i7_do_glk_stream_set_current(i7process *proc, i7val id) {
|
||||
void i7_do_glk_stream_set_current(i7process_t *proc, i7val id) {
|
||||
if ((id < 0) || (id >= I7_MAX_STREAMS)) { fprintf(stderr, "Stream ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
i7_str_id = id;
|
||||
}
|
||||
|
||||
i7_stream i7_new_stream(i7process *proc, FILE *F, int win_id) {
|
||||
i7_stream i7_new_stream(i7process_t *proc, FILE *F, int win_id) {
|
||||
i7_stream S;
|
||||
S.to_file = F;
|
||||
S.to_file_id = -1;
|
||||
|
@ -224,43 +224,41 @@ i7_stream i7_new_stream(i7process *proc, FILE *F, int win_id) {
|
|||
S.owned_by_window_id = win_id;
|
||||
return S;
|
||||
}
|
||||
|
||||
void (*i7_receiver)(int id, wchar_t c) = NULL;
|
||||
=
|
||||
|
||||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void i7_initialise_streams(i7process *proc, void (*receiver)(int id, wchar_t c));
|
||||
i7val i7_open_stream(i7process *proc, FILE *F, int win_id);
|
||||
i7val i7_do_glk_stream_open_memory(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_file(i7process *proc, i7val fileref, i7val usage, i7val rock);
|
||||
void i7_initialise_streams(i7process_t *proc);
|
||||
i7val i7_open_stream(i7process_t *proc, FILE *F, int win_id);
|
||||
i7val i7_do_glk_stream_open_memory(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock);
|
||||
i7val i7_do_glk_stream_open_file(i7process_t *proc, i7val fileref, i7val usage, i7val rock);
|
||||
#define seekmode_Start (0)
|
||||
#define seekmode_Current (1)
|
||||
#define seekmode_End (2)
|
||||
void i7_do_glk_stream_set_position(i7process *proc, i7val id, i7val pos, i7val seekmode);
|
||||
i7val i7_do_glk_stream_get_position(i7process *proc, i7val id);
|
||||
void i7_do_glk_stream_close(i7process *proc, i7val id, i7val result);
|
||||
void i7_do_glk_stream_set_position(i7process_t *proc, i7val id, i7val pos, i7val seekmode);
|
||||
i7val i7_do_glk_stream_get_position(i7process_t *proc, i7val id);
|
||||
void i7_do_glk_stream_close(i7process_t *proc, i7val id, i7val result);
|
||||
typedef struct i7_winref {
|
||||
i7val type;
|
||||
i7val stream_id;
|
||||
i7val rock;
|
||||
} i7_winref;
|
||||
i7val i7_do_glk_window_open(i7process *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock);
|
||||
i7val i7_stream_of_window(i7process *proc, i7val id);
|
||||
i7val i7_rock_of_window(i7process *proc, i7val id);
|
||||
void i7_to_receiver(i7process *proc, i7val rock, wchar_t c);
|
||||
void i7_do_glk_put_char_stream(i7process *proc, i7val stream_id, i7val x);
|
||||
i7val i7_do_glk_get_char_stream(i7process *proc, i7val stream_id);
|
||||
void i7_print_char(i7process *proc, i7val x);
|
||||
void i7_print_C_string(i7process *proc, char *c_string);
|
||||
void i7_print_decimal(i7process *proc, i7val x);
|
||||
i7val i7_do_glk_window_open(i7process_t *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock);
|
||||
i7val i7_stream_of_window(i7process_t *proc, i7val id);
|
||||
i7val i7_rock_of_window(i7process_t *proc, i7val id);
|
||||
void i7_to_receiver(i7process_t *proc, i7val rock, wchar_t c);
|
||||
void i7_do_glk_put_char_stream(i7process_t *proc, i7val stream_id, i7val x);
|
||||
i7val i7_do_glk_get_char_stream(i7process_t *proc, i7val stream_id);
|
||||
void i7_print_char(i7process_t *proc, i7val x);
|
||||
void i7_print_C_string(i7process_t *proc, char *c_string);
|
||||
void i7_print_decimal(i7process_t *proc, i7val x);
|
||||
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void i7_initialise_streams(i7process *proc, void (*receiver)(int id, wchar_t c)) {
|
||||
void i7_initialise_streams(i7process_t *proc) {
|
||||
for (int i=0; i<I7_MAX_STREAMS; i++) i7_memory_streams[i] = i7_new_stream(proc, NULL, 0);
|
||||
i7_memory_streams[i7_stdout_id] = i7_new_stream(proc, stdout, 0);
|
||||
i7_memory_streams[i7_stdout_id].active = 1;
|
||||
|
@ -269,10 +267,9 @@ void i7_initialise_streams(i7process *proc, void (*receiver)(int id, wchar_t c))
|
|||
i7_memory_streams[i7_stderr_id].active = 1;
|
||||
i7_memory_streams[i7_stderr_id].encode_UTF8 = 1;
|
||||
i7_do_glk_stream_set_current(proc, i7_stdout_id);
|
||||
i7_receiver = receiver;
|
||||
}
|
||||
|
||||
i7val i7_open_stream(i7process *proc, FILE *F, int win_id) {
|
||||
i7val i7_open_stream(i7process_t *proc, FILE *F, int win_id) {
|
||||
for (int i=0; i<I7_MAX_STREAMS; i++)
|
||||
if (i7_memory_streams[i].active == 0) {
|
||||
i7_memory_streams[i] = i7_new_stream(proc, F, win_id);
|
||||
|
@ -284,7 +281,7 @@ i7val i7_open_stream(i7process *proc, FILE *F, int win_id) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
i7val i7_do_glk_stream_open_memory(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock) {
|
||||
i7val i7_do_glk_stream_open_memory(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock) {
|
||||
if (fmode != 1) { fprintf(stderr, "Only file mode 1 supported, not %d\n", fmode); i7_fatal_exit(proc); }
|
||||
i7val id = i7_open_stream(proc, NULL, 0);
|
||||
i7_memory_streams[id].write_here_on_closure = buffer;
|
||||
|
@ -294,7 +291,7 @@ i7val i7_do_glk_stream_open_memory(i7process *proc, i7val buffer, i7val len, i7v
|
|||
return id;
|
||||
}
|
||||
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process *proc, i7val buffer, i7val len, i7val fmode, i7val rock) {
|
||||
i7val i7_do_glk_stream_open_memory_uni(i7process_t *proc, i7val buffer, i7val len, i7val fmode, i7val rock) {
|
||||
if (fmode != 1) { fprintf(stderr, "Only file mode 1 supported, not %d\n", fmode); i7_fatal_exit(proc); }
|
||||
i7val id = i7_open_stream(proc, NULL, 0);
|
||||
i7_memory_streams[id].write_here_on_closure = buffer;
|
||||
|
@ -304,14 +301,14 @@ i7val i7_do_glk_stream_open_memory_uni(i7process *proc, i7val buffer, i7val len,
|
|||
return id;
|
||||
}
|
||||
|
||||
i7val i7_do_glk_stream_open_file(i7process *proc, i7val fileref, i7val usage, i7val rock) {
|
||||
i7val i7_do_glk_stream_open_file(i7process_t *proc, i7val fileref, i7val usage, i7val rock) {
|
||||
i7val id = i7_open_stream(proc, NULL, 0);
|
||||
i7_memory_streams[id].to_file_id = fileref;
|
||||
if (i7_fopen(proc, fileref, usage) == 0) return 0;
|
||||
return id;
|
||||
}
|
||||
|
||||
void i7_do_glk_stream_set_position(i7process *proc, i7val id, i7val pos, i7val seekmode) {
|
||||
void i7_do_glk_stream_set_position(i7process_t *proc, i7val id, i7val pos, i7val seekmode) {
|
||||
if ((id < 0) || (id >= I7_MAX_STREAMS)) { fprintf(stderr, "Stream ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
i7_stream *S = &(i7_memory_streams[id]);
|
||||
if (S->to_file_id >= 0) {
|
||||
|
@ -328,7 +325,7 @@ void i7_do_glk_stream_set_position(i7process *proc, i7val id, i7val pos, i7val s
|
|||
}
|
||||
}
|
||||
|
||||
i7val i7_do_glk_stream_get_position(i7process *proc, i7val id) {
|
||||
i7val i7_do_glk_stream_get_position(i7process_t *proc, i7val id) {
|
||||
if ((id < 0) || (id >= I7_MAX_STREAMS)) { fprintf(stderr, "Stream ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
i7_stream *S = &(i7_memory_streams[id]);
|
||||
if (S->to_file_id >= 0) {
|
||||
|
@ -337,7 +334,7 @@ i7val i7_do_glk_stream_get_position(i7process *proc, i7val id) {
|
|||
return (i7val) S->memory_used;
|
||||
}
|
||||
|
||||
void i7_do_glk_stream_close(i7process *proc, i7val id, i7val result) {
|
||||
void i7_do_glk_stream_close(i7process_t *proc, i7val id, i7val result) {
|
||||
if ((id < 0) || (id >= I7_MAX_STREAMS)) { fprintf(stderr, "Stream ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
if (id == 0) { fprintf(stderr, "Cannot close stdout\n"); i7_fatal_exit(proc); }
|
||||
if (id == 1) { fprintf(stderr, "Cannot close stderr\n"); i7_fatal_exit(proc); }
|
||||
|
@ -374,7 +371,7 @@ void i7_do_glk_stream_close(i7process *proc, i7val id, i7val result) {
|
|||
i7_winref winrefs[128];
|
||||
int i7_no_winrefs = 1;
|
||||
|
||||
i7val i7_do_glk_window_open(i7process *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock) {
|
||||
i7val i7_do_glk_window_open(i7process_t *proc, i7val split, i7val method, i7val size, i7val wintype, i7val rock) {
|
||||
if (i7_no_winrefs >= 128) {
|
||||
fprintf(stderr, "Out of windows\n"); i7_fatal_exit(proc);
|
||||
}
|
||||
|
@ -385,22 +382,22 @@ i7val i7_do_glk_window_open(i7process *proc, i7val split, i7val method, i7val si
|
|||
return id;
|
||||
}
|
||||
|
||||
i7val i7_stream_of_window(i7process *proc, i7val id) {
|
||||
i7val i7_stream_of_window(i7process_t *proc, i7val id) {
|
||||
if ((id < 0) || (id >= i7_no_winrefs)) { fprintf(stderr, "Window ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
return winrefs[id].stream_id;
|
||||
}
|
||||
|
||||
i7val i7_rock_of_window(i7process *proc, i7val id) {
|
||||
i7val i7_rock_of_window(i7process_t *proc, i7val id) {
|
||||
if ((id < 0) || (id >= i7_no_winrefs)) { fprintf(stderr, "Window ID %d out of range\n", id); i7_fatal_exit(proc); }
|
||||
return winrefs[id].rock;
|
||||
}
|
||||
|
||||
void i7_to_receiver(i7process *proc, i7val rock, wchar_t c) {
|
||||
if (i7_receiver == NULL) fputc(c, stdout);
|
||||
(*i7_receiver)(rock, c);
|
||||
void i7_to_receiver(i7process_t *proc, i7val rock, wchar_t c) {
|
||||
if (proc->receiver == NULL) fputc(c, stdout);
|
||||
(proc->receiver)(rock, c);
|
||||
}
|
||||
|
||||
void i7_do_glk_put_char_stream(i7process *proc, i7val stream_id, i7val x) {
|
||||
void i7_do_glk_put_char_stream(i7process_t *proc, i7val stream_id, i7val x) {
|
||||
i7_stream *S = &(i7_memory_streams[stream_id]);
|
||||
if (S->to_file) {
|
||||
int win_id = S->owned_by_window_id;
|
||||
|
@ -436,7 +433,7 @@ void i7_do_glk_put_char_stream(i7process *proc, i7val stream_id, i7val x) {
|
|||
}
|
||||
}
|
||||
|
||||
i7val i7_do_glk_get_char_stream(i7process *proc, i7val stream_id) {
|
||||
i7val i7_do_glk_get_char_stream(i7process_t *proc, i7val stream_id) {
|
||||
i7_stream *S = &(i7_memory_streams[stream_id]);
|
||||
if (S->to_file_id >= 0) {
|
||||
S->chars_read++;
|
||||
|
@ -445,17 +442,17 @@ i7val i7_do_glk_get_char_stream(i7process *proc, i7val stream_id) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void i7_print_char(i7process *proc, i7val x) {
|
||||
void i7_print_char(i7process_t *proc, i7val x) {
|
||||
i7_do_glk_put_char_stream(proc, i7_str_id, x);
|
||||
}
|
||||
|
||||
void i7_print_C_string(i7process *proc, char *c_string) {
|
||||
void i7_print_C_string(i7process_t *proc, char *c_string) {
|
||||
if (c_string)
|
||||
for (int i=0; c_string[i]; i++)
|
||||
i7_print_char(proc, (i7val) c_string[i]);
|
||||
}
|
||||
|
||||
void i7_print_decimal(i7process *proc, i7val x) {
|
||||
void i7_print_decimal(i7process_t *proc, i7val x) {
|
||||
char room[32];
|
||||
sprintf(room, "%d", (int) x);
|
||||
i7_print_C_string(proc, room);
|
||||
|
@ -480,10 +477,10 @@ typedef struct i7_glk_event {
|
|||
i7val val1;
|
||||
i7val val2;
|
||||
} i7_glk_event;
|
||||
i7_glk_event *i7_next_event(i7process *proc);
|
||||
void i7_make_event(i7process *proc, i7_glk_event e);
|
||||
i7val i7_do_glk_select(i7process *proc, i7val structure);
|
||||
i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len);
|
||||
i7_glk_event *i7_next_event(i7process_t *proc);
|
||||
void i7_make_event(i7process_t *proc, i7_glk_event e);
|
||||
i7val i7_do_glk_select(i7process_t *proc, i7val structure);
|
||||
i7val i7_do_glk_request_line_event(i7process_t *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len);
|
||||
#define i7_glk_exit 0x0001
|
||||
#define i7_glk_set_interrupt_handler 0x0002
|
||||
#define i7_glk_tick 0x0003
|
||||
|
@ -607,35 +604,35 @@ i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffe
|
|||
#define i7_glk_date_to_time_local 0x016D
|
||||
#define i7_glk_date_to_simple_time_utc 0x016E
|
||||
#define i7_glk_date_to_simple_time_local 0x016F
|
||||
void glulx_glk(i7process *proc, i7val glk_api_selector, i7val varargc, i7val *z);
|
||||
i7val fn_i7_mgl_IndefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_DefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CIndefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CDefArt(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_PrintShortName(i7process *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
void i7_print_name(i7process *proc, i7val x);
|
||||
void i7_print_object(i7process *proc, i7val x);
|
||||
void i7_print_box(i7process *proc, i7val x);
|
||||
void i7_read(i7process *proc, i7val x);
|
||||
void glulx_glk(i7process_t *proc, i7val glk_api_selector, i7val varargc, i7val *z);
|
||||
i7val fn_i7_mgl_IndefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_DefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CIndefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_CDefArt(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
i7val fn_i7_mgl_PrintShortName(i7process_t *proc, i7val i7_mgl_local_obj, i7val i7_mgl_local_i);
|
||||
void i7_print_name(i7process_t *proc, i7val x);
|
||||
void i7_print_object(i7process_t *proc, i7val x);
|
||||
void i7_print_box(i7process_t *proc, i7val x);
|
||||
void i7_read(i7process_t *proc, i7val x);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7_glk_event i7_events_ring_buffer[32];
|
||||
int i7_rb_back = 0, i7_rb_front = 0;
|
||||
|
||||
i7_glk_event *i7_next_event(i7process *proc) {
|
||||
i7_glk_event *i7_next_event(i7process_t *proc) {
|
||||
if (i7_rb_front == i7_rb_back) return NULL;
|
||||
i7_glk_event *e = &(i7_events_ring_buffer[i7_rb_back]);
|
||||
i7_rb_back++; if (i7_rb_back == 32) i7_rb_back = 0;
|
||||
return e;
|
||||
}
|
||||
|
||||
void i7_make_event(i7process *proc, i7_glk_event e) {
|
||||
void i7_make_event(i7process_t *proc, i7_glk_event e) {
|
||||
i7_events_ring_buffer[i7_rb_front] = e;
|
||||
i7_rb_front++; if (i7_rb_front == 32) i7_rb_front = 0;
|
||||
}
|
||||
|
||||
i7val i7_do_glk_select(i7process *proc, i7val structure) {
|
||||
i7val i7_do_glk_select(i7process_t *proc, i7val structure) {
|
||||
i7_glk_event *e = i7_next_event(proc);
|
||||
if (e == NULL) {
|
||||
fprintf(stderr, "No events available to select\n"); i7_fatal_exit(proc);
|
||||
|
@ -657,7 +654,7 @@ i7val i7_do_glk_select(i7process *proc, i7val structure) {
|
|||
}
|
||||
|
||||
int i7_no_lr = 0;
|
||||
i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len) {
|
||||
i7val i7_do_glk_request_line_event(i7process_t *proc, i7val window_id, i7val buffer, i7val max_len, i7val init_len) {
|
||||
i7_glk_event e;
|
||||
e.type = evtype_LineInput;
|
||||
e.win_id = window_id;
|
||||
|
@ -679,7 +676,7 @@ i7val i7_do_glk_request_line_event(i7process *proc, i7val window_id, i7val buffe
|
|||
}
|
||||
|
||||
|
||||
void glulx_glk(i7process *proc, i7val glk_api_selector, i7val varargc, i7val *z) {
|
||||
void glulx_glk(i7process_t *proc, i7val glk_api_selector, i7val varargc, i7val *z) {
|
||||
i7_debug_stack("glulx_glk");
|
||||
i7val args[5] = { 0, 0, 0, 0, 0 }, argc = 0;
|
||||
while (varargc > 0) {
|
||||
|
@ -765,25 +762,25 @@ void glulx_glk(i7process *proc, i7val glk_api_selector, i7val varargc, i7val *z)
|
|||
if (z) *z = rv;
|
||||
}
|
||||
|
||||
void i7_print_name(i7process *proc, i7val x) {
|
||||
void i7_print_name(i7process_t *proc, i7val x) {
|
||||
fn_i7_mgl_PrintShortName(proc, x, 0);
|
||||
}
|
||||
|
||||
void i7_print_object(i7process *proc, i7val x) {
|
||||
void i7_print_object(i7process_t *proc, i7val x) {
|
||||
i7_print_decimal(proc, x);
|
||||
}
|
||||
|
||||
void i7_print_box(i7process *proc, i7val x) {
|
||||
void i7_print_box(i7process_t *proc, i7val x) {
|
||||
printf("Unimplemented: i7_print_box.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void i7_read(i7process *proc, i7val x) {
|
||||
void i7_read(i7process_t *proc, i7val x) {
|
||||
printf("Only available on 16-bit architectures, which this is not: i7_read.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
i7val fn_i7_mgl_pending_boxed_quotation(i7process *proc) {
|
||||
i7val fn_i7_mgl_pending_boxed_quotation(i7process_t *proc) {
|
||||
return 0;
|
||||
}
|
||||
=
|
||||
|
|
|
@ -735,12 +735,12 @@ int CLiteralsModel::compile_primitive(code_generation *gen, inter_ti bip, inter_
|
|||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void i7_print_dword(i7process *proc, i7val at);
|
||||
void i7_print_dword(i7process_t *proc, i7val at);
|
||||
char *i7_text_of_string(i7val str);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void i7_print_dword(i7process *proc, i7val at) {
|
||||
void i7_print_dword(i7process_t *proc, i7val at) {
|
||||
for (i7byte i=1; i<=9; i++) {
|
||||
i7byte c = i7_read_byte(proc, at+i);
|
||||
if (c == 0) break;
|
||||
|
|
|
@ -80,12 +80,12 @@ void CMemoryModel::end(code_generation *gen) {
|
|||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void i7_initialise_state(i7process *proc);
|
||||
void i7_initialise_state(i7process_t *proc);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7byte i7_initial_memory[];
|
||||
void i7_initialise_state(i7process *proc) {
|
||||
void i7_initialise_state(i7process_t *proc) {
|
||||
if (proc->state.memory != NULL) free(proc->state.memory);
|
||||
i7byte *mem = calloc(i7_static_himem, sizeof(i7byte));
|
||||
if (mem == NULL) {
|
||||
|
@ -146,16 +146,16 @@ The following function reads a word which is in entry |array_index| (counting
|
|||
0, 1, 2, ...) in the array which begins at the byte address |array_address|.
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
i7byte i7_read_byte(i7process *proc, i7val address);
|
||||
i7val i7_read_word(i7process *proc, i7val array_address, i7val array_index);
|
||||
i7byte i7_read_byte(i7process_t *proc, i7val address);
|
||||
i7val i7_read_word(i7process_t *proc, i7val array_address, i7val array_index);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7byte i7_read_byte(i7process *proc, i7val address) {
|
||||
i7byte i7_read_byte(i7process_t *proc, i7val address) {
|
||||
return proc->state.memory[address];
|
||||
}
|
||||
|
||||
i7val i7_read_word(i7process *proc, i7val array_address, i7val array_index) {
|
||||
i7val i7_read_word(i7process_t *proc, i7val array_address, i7val array_index) {
|
||||
i7byte *data = proc->state.memory;
|
||||
int byte_position = array_address + 4*array_index;
|
||||
if ((byte_position < 0) || (byte_position >= i7_static_himem)) {
|
||||
|
@ -178,16 +178,16 @@ express a packed word in constant context, which we will need later.
|
|||
#define I7BYTE_2(V) ((V & 0x0000FF00) >> 8)
|
||||
#define I7BYTE_3(V) (V & 0x000000FF)
|
||||
|
||||
void i7_write_byte(i7process *proc, i7val address, i7byte new_val);
|
||||
i7val i7_write_word(i7process *proc, i7val array_address, i7val array_index, i7val new_val, int way);
|
||||
void i7_write_byte(i7process_t *proc, i7val address, i7byte new_val);
|
||||
i7val i7_write_word(i7process_t *proc, i7val array_address, i7val array_index, i7val new_val, int way);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void i7_write_byte(i7process *proc, i7val address, i7byte new_val) {
|
||||
void i7_write_byte(i7process_t *proc, i7val address, i7byte new_val) {
|
||||
proc->state.memory[address] = new_val;
|
||||
}
|
||||
|
||||
i7byte i7_change_byte(i7process *proc, i7val address, i7byte new_val, int way) {
|
||||
i7byte i7_change_byte(i7process_t *proc, i7val address, i7byte new_val, int way) {
|
||||
i7byte old_val = i7_read_byte(proc, address);
|
||||
i7byte return_val = new_val;
|
||||
switch (way) {
|
||||
|
@ -202,7 +202,7 @@ i7byte i7_change_byte(i7process *proc, i7val address, i7byte new_val, int way) {
|
|||
return return_val;
|
||||
}
|
||||
|
||||
i7val i7_write_word(i7process *proc, i7val array_address, i7val array_index, i7val new_val, int way) {
|
||||
i7val i7_write_word(i7process_t *proc, i7val array_address, i7val array_index, i7val new_val, int way) {
|
||||
i7byte *data = proc->state.memory;
|
||||
i7val old_val = i7_read_word(proc, array_address, array_index);
|
||||
i7val return_val = new_val;
|
||||
|
@ -230,11 +230,11 @@ i7val i7_write_word(i7process *proc, i7val array_address, i7val array_index, i7v
|
|||
@ "Short" 16-bit numbers can also be accessed:
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void glulx_aloads(i7process *proc, i7val x, i7val y, i7val *z);
|
||||
void glulx_aloads(i7process_t *proc, i7val x, i7val y, i7val *z);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void glulx_aloads(i7process *proc, i7val x, i7val y, i7val *z) {
|
||||
void glulx_aloads(i7process_t *proc, i7val x, i7val y, i7val *z) {
|
||||
if (z) *z = 0x100*((i7val) i7_read_byte(proc, x+2*y)) + ((i7val) i7_read_byte(proc, x+2*y+1));
|
||||
}
|
||||
=
|
||||
|
@ -242,13 +242,13 @@ void glulx_aloads(i7process *proc, i7val x, i7val y, i7val *z) {
|
|||
@ A Glulx assembly opcode is provided for fast memory copies:
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
void glulx_mcopy(i7process *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_malloc(i7process *proc, i7val x, i7val y);
|
||||
void glulx_mfree(i7process *proc, i7val x);
|
||||
void glulx_mcopy(i7process_t *proc, i7val x, i7val y, i7val z);
|
||||
void glulx_malloc(i7process_t *proc, i7val x, i7val y);
|
||||
void glulx_mfree(i7process_t *proc, i7val x);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
void glulx_mcopy(i7process *proc, i7val x, i7val y, i7val z) {
|
||||
void glulx_mcopy(i7process_t *proc, i7val x, i7val y, i7val z) {
|
||||
if (z < y)
|
||||
for (i7val i=0; i<x; i++)
|
||||
i7_write_byte(proc, z+i, i7_read_byte(proc, y+i));
|
||||
|
@ -257,12 +257,12 @@ void glulx_mcopy(i7process *proc, i7val x, i7val y, i7val z) {
|
|||
i7_write_byte(proc, z+i, i7_read_byte(proc, y+i));
|
||||
}
|
||||
|
||||
void glulx_malloc(i7process *proc, i7val x, i7val y) {
|
||||
void glulx_malloc(i7process_t *proc, i7val x, i7val y) {
|
||||
printf("Unimplemented: glulx_malloc.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
||||
void glulx_mfree(i7process *proc, i7val x) {
|
||||
void glulx_mfree(i7process_t *proc, i7val x) {
|
||||
printf("Unimplemented: glulx_mfree.\n");
|
||||
i7_fatal_exit(proc);
|
||||
}
|
||||
|
|
|
@ -240,12 +240,12 @@ the calling conventions of other functions. It says which of five possible value
|
|||
an ID belongs to: 0, |Class|, |Object|, |String| or |Routine|.
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
i7val fn_i7_mgl_metaclass(i7process *proc, i7val id);
|
||||
int i7_ofclass(i7process *proc, i7val id, i7val cl_id);
|
||||
i7val fn_i7_mgl_metaclass(i7process_t *proc, i7val id);
|
||||
int i7_ofclass(i7process_t *proc, i7val id, i7val cl_id);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7val fn_i7_mgl_metaclass(i7process *proc, i7val id) {
|
||||
i7val fn_i7_mgl_metaclass(i7process_t *proc, i7val id) {
|
||||
if (id <= 0) return 0;
|
||||
if (id >= I7VAL_FUNCTIONS_BASE) return i7_mgl_Routine;
|
||||
if (id >= I7VAL_STRINGS_BASE) return i7_mgl_String;
|
||||
|
@ -257,7 +257,7 @@ because we may need to recurse up the class hierarchy. If A is of class B whose
|
|||
superclass is C, then |i7_ofclass(A, B)| and |i7_ofclass(A, C)| are both true,
|
||||
as it |i7_ofclass(B, C)|.
|
||||
= (text to inform7_clib.c)
|
||||
int i7_ofclass(i7process *proc, i7val id, i7val cl_id) {
|
||||
int i7_ofclass(i7process_t *proc, i7val id, i7val cl_id) {
|
||||
if ((id <= 0) || (cl_id <= 0)) return 0;
|
||||
if (id >= I7VAL_FUNCTIONS_BASE) {
|
||||
if (cl_id == i7_mgl_Routine) return 1;
|
||||
|
@ -368,7 +368,7 @@ that avoids a meaningless function being created in small test runs of |inter|
|
|||
not deriving from an Inform program.
|
||||
|
||||
@<Begin the property-offset creator function@> =
|
||||
WRITE("i7val fn_i7_mgl_CreatePropertyOffsets(i7process *proc) {\n"); INDENT;
|
||||
WRITE("i7val fn_i7_mgl_CreatePropertyOffsets(i7process_t *proc) {\n"); INDENT;
|
||||
WRITE("for (int i=0; i<i7_mgl_attributed_property_offsets_SIZE; i++)\n"); INDENT;
|
||||
WRITE("i7_write_word(proc, i7_mgl_attributed_property_offsets, i, -1, i7_lvalue_SET);\n"); OUTDENT;
|
||||
WRITE("for (int i=0; i<i7_mgl_valued_property_offsets_SIZE; i++)\n"); INDENT;
|
||||
|
@ -400,7 +400,7 @@ initialiser function which runs early and sets the property values up by hand:
|
|||
@<Begin the initialiser function@> =
|
||||
generated_segment *saved = CodeGen::select(gen, c_initialiser_I7CGS);
|
||||
text_stream *OUT = CodeGen::current(gen);
|
||||
WRITE("void i7_initializer(i7process *proc) {\n"); INDENT;
|
||||
WRITE("void i7_initializer(i7process_t *proc) {\n"); INDENT;
|
||||
WRITE("for (int id=0; id<i7_max_objects; id++) {\n"); INDENT;
|
||||
WRITE("for (int p=0; p<i7_no_property_ids; p++) {\n"); INDENT;
|
||||
WRITE("i7_properties[id].address[p] = 0;\n");
|
||||
|
@ -574,11 +574,11 @@ So here is the run-time storage for property values, and simple code to read
|
|||
and write them.
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
i7val fn_i7_mgl_CreatePropertyOffsets(i7process *proc);
|
||||
void i7_write_prop_value(i7process *proc, i7val owner_id, i7val prop_id, i7val val);
|
||||
i7val i7_read_prop_value(i7process *proc, i7val owner_id, i7val prop_id);
|
||||
i7val i7_change_prop_value(i7process *proc, i7val obj, i7val pr, i7val to, int way);
|
||||
void i7_give(i7process *proc, i7val owner, i7val prop, i7val val);
|
||||
i7val fn_i7_mgl_CreatePropertyOffsets(i7process_t *proc);
|
||||
void i7_write_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id, i7val val);
|
||||
i7val i7_read_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id);
|
||||
i7val i7_change_prop_value(i7process_t *proc, i7val obj, i7val pr, i7val to, int way);
|
||||
void i7_give(i7process_t *proc, i7val owner, i7val prop, i7val val);
|
||||
i7val i7_prop_len(i7val obj, i7val pr);
|
||||
i7val i7_prop_addr(i7val obj, i7val pr);
|
||||
=
|
||||
|
@ -591,7 +591,7 @@ typedef struct i7_property_set {
|
|||
} i7_property_set;
|
||||
i7_property_set i7_properties[i7_max_objects];
|
||||
|
||||
void i7_write_prop_value(i7process *proc, i7val owner_id, i7val prop_id, i7val val) {
|
||||
void i7_write_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id, i7val val) {
|
||||
if ((owner_id <= 0) || (owner_id >= i7_max_objects) ||
|
||||
(prop_id < 0) || (prop_id >= i7_no_property_ids)) {
|
||||
printf("impossible property write (%d, %d)\n", owner_id, prop_id);
|
||||
|
@ -609,7 +609,7 @@ void i7_write_prop_value(i7process *proc, i7val owner_id, i7val prop_id, i7val v
|
|||
@ And here sre the functions called by the above primitives:
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
i7val i7_read_prop_value(i7process *proc, i7val owner_id, i7val prop_id) {
|
||||
i7val i7_read_prop_value(i7process_t *proc, i7val owner_id, i7val prop_id) {
|
||||
if ((owner_id <= 0) || (owner_id >= i7_max_objects) ||
|
||||
(prop_id < 0) || (prop_id >= i7_no_property_ids)) return 0;
|
||||
while (i7_properties[(int) owner_id].address[(int) prop_id] == 0) {
|
||||
|
@ -620,7 +620,7 @@ i7val i7_read_prop_value(i7process *proc, i7val owner_id, i7val prop_id) {
|
|||
return i7_read_word(proc, address, 0);
|
||||
}
|
||||
|
||||
i7val i7_change_prop_value(i7process *proc, i7val obj, i7val pr, i7val to, int way) {
|
||||
i7val i7_change_prop_value(i7process_t *proc, i7val obj, i7val pr, i7val to, int way) {
|
||||
i7val val = i7_read_prop_value(proc, obj, pr), new_val = val;
|
||||
switch (way) {
|
||||
case i7_lvalue_SET: i7_write_prop_value(proc, obj, pr, to); new_val = to; break;
|
||||
|
@ -634,7 +634,7 @@ i7val i7_change_prop_value(i7process *proc, i7val obj, i7val pr, i7val to, int w
|
|||
return new_val;
|
||||
}
|
||||
|
||||
void i7_give(i7process *proc, i7val owner, i7val prop, i7val val) {
|
||||
void i7_give(i7process_t *proc, i7val owner, i7val prop, i7val val) {
|
||||
i7_write_prop_value(proc, owner, prop, val);
|
||||
}
|
||||
|
||||
|
@ -669,23 +669,23 @@ text_stream *CObjectModel::test_with_function(inter_ti bip, int *positive) {
|
|||
@
|
||||
|
||||
= (text to inform7_clib.h)
|
||||
int i7_has(i7process *proc, i7val obj, i7val attr);
|
||||
int i7_provides(i7process *proc, i7val owner_id, i7val prop_id);
|
||||
int i7_in(i7process *proc, i7val obj1, i7val obj2);
|
||||
i7val fn_i7_mgl_parent(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_child(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_children(i7process *proc, i7val id);
|
||||
i7val fn_i7_mgl_sibling(i7process *proc, i7val id);
|
||||
void i7_move(i7process *proc, i7val obj, i7val to);
|
||||
int i7_has(i7process_t *proc, i7val obj, i7val attr);
|
||||
int i7_provides(i7process_t *proc, i7val owner_id, i7val prop_id);
|
||||
int i7_in(i7process_t *proc, i7val obj1, i7val obj2);
|
||||
i7val fn_i7_mgl_parent(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_child(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_children(i7process_t *proc, i7val id);
|
||||
i7val fn_i7_mgl_sibling(i7process_t *proc, i7val id);
|
||||
void i7_move(i7process_t *proc, i7val obj, i7val to);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
int i7_has(i7process *proc, i7val obj, i7val attr) {
|
||||
int i7_has(i7process_t *proc, i7val obj, i7val attr) {
|
||||
if (i7_read_prop_value(proc, obj, attr)) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int i7_provides(i7process *proc, i7val owner_id, i7val prop_id) {
|
||||
int i7_provides(i7process_t *proc, i7val owner_id, i7val prop_id) {
|
||||
if ((owner_id <= 0) || (owner_id >= i7_max_objects) ||
|
||||
(prop_id < 0) || (prop_id >= i7_no_property_ids)) return 0;
|
||||
while (owner_id != 1) {
|
||||
|
@ -696,33 +696,33 @@ int i7_provides(i7process *proc, i7val owner_id, i7val prop_id) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int i7_in(i7process *proc, i7val obj1, i7val obj2) {
|
||||
int i7_in(i7process_t *proc, i7val obj1, i7val obj2) {
|
||||
if (fn_i7_mgl_metaclass(proc, obj1) != i7_mgl_Object) return 0;
|
||||
if (obj2 == 0) return 0;
|
||||
if (proc->state.i7_object_tree_parent[obj1] == obj2) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
i7val fn_i7_mgl_parent(i7process *proc, i7val id) {
|
||||
i7val fn_i7_mgl_parent(i7process_t *proc, i7val id) {
|
||||
if (fn_i7_mgl_metaclass(proc, id) != i7_mgl_Object) return 0;
|
||||
return proc->state.i7_object_tree_parent[id];
|
||||
}
|
||||
i7val fn_i7_mgl_child(i7process *proc, i7val id) {
|
||||
i7val fn_i7_mgl_child(i7process_t *proc, i7val id) {
|
||||
if (fn_i7_mgl_metaclass(proc, id) != i7_mgl_Object) return 0;
|
||||
return proc->state.i7_object_tree_child[id];
|
||||
}
|
||||
i7val fn_i7_mgl_children(i7process *proc, i7val id) {
|
||||
i7val fn_i7_mgl_children(i7process_t *proc, i7val id) {
|
||||
if (fn_i7_mgl_metaclass(proc, id) != i7_mgl_Object) return 0;
|
||||
i7val c=0;
|
||||
for (int i=0; i<i7_max_objects; i++) if (proc->state.i7_object_tree_parent[i] == id) c++;
|
||||
return c;
|
||||
}
|
||||
i7val fn_i7_mgl_sibling(i7process *proc, i7val id) {
|
||||
i7val fn_i7_mgl_sibling(i7process_t *proc, i7val id) {
|
||||
if (fn_i7_mgl_metaclass(proc, id) != i7_mgl_Object) return 0;
|
||||
return proc->state.i7_object_tree_sibling[id];
|
||||
}
|
||||
|
||||
void i7_move(i7process *proc, i7val obj, i7val to) {
|
||||
void i7_move(i7process_t *proc, i7val obj, i7val to) {
|
||||
if ((obj <= 0) || (obj >= i7_max_objects)) return;
|
||||
int p = proc->state.i7_object_tree_parent[obj];
|
||||
if (p) {
|
||||
|
|
|
@ -83,29 +83,32 @@ typedef struct i7snapshot {
|
|||
|
||||
#define I7_MAX_SNAPSHOTS 10
|
||||
|
||||
typedef struct i7process {
|
||||
typedef struct i7process_t {
|
||||
i7state state;
|
||||
i7snapshot snapshots[I7_MAX_SNAPSHOTS];
|
||||
int snapshot_pos;
|
||||
jmp_buf execution_env;
|
||||
int termination_code;
|
||||
int just_undid;
|
||||
} i7process;
|
||||
void (*receiver)(int id, wchar_t c);
|
||||
} i7process_t;
|
||||
|
||||
i7state i7_new_state(void);
|
||||
i7process i7_new_process(void);
|
||||
i7process_t i7_new_process(void);
|
||||
i7snapshot i7_new_snapshot(void);
|
||||
void i7_save_snapshot(i7process *proc);
|
||||
int i7_has_snapshot(i7process *proc);
|
||||
void i7_restore_snapshot(i7process *proc);
|
||||
void i7_restore_snapshot_from(i7process *proc, i7snapshot *ss);
|
||||
void i7_destroy_latest_snapshot(i7process *proc);
|
||||
void i7_run_process(i7process *proc, void (*receiver)(int id, wchar_t c));
|
||||
void i7_initializer(i7process *proc);
|
||||
void i7_fatal_exit(i7process *proc);
|
||||
void i7_destroy_state(i7process *proc, i7state *s);
|
||||
void i7_destroy_snapshot(i7process *proc, i7snapshot *old);
|
||||
void i7_save_snapshot(i7process_t *proc);
|
||||
int i7_has_snapshot(i7process_t *proc);
|
||||
void i7_restore_snapshot(i7process_t *proc);
|
||||
void i7_restore_snapshot_from(i7process_t *proc, i7snapshot *ss);
|
||||
void i7_destroy_latest_snapshot(i7process_t *proc);
|
||||
int i7_run_process(i7process_t *proc);
|
||||
void i7_set_process_receiver(i7process_t *proc, void (*receiver)(int id, wchar_t c));
|
||||
void i7_initializer(i7process_t *proc);
|
||||
void i7_fatal_exit(i7process_t *proc);
|
||||
void i7_destroy_state(i7process_t *proc, i7state *s);
|
||||
void i7_destroy_snapshot(i7process_t *proc, i7snapshot *old);
|
||||
void i7_default_receiver(int id, wchar_t c);
|
||||
int default_main(int argc, char **argv);
|
||||
=
|
||||
|
||||
= (text to inform7_clib.c)
|
||||
|
@ -125,7 +128,7 @@ i7state i7_new_state(void) {
|
|||
return S;
|
||||
}
|
||||
|
||||
void i7_copy_state(i7process *proc, i7state *to, i7state *from) {
|
||||
void i7_copy_state(i7process_t *proc, i7state *to, i7state *from) {
|
||||
to->himem = from->himem;
|
||||
to->memory = calloc(i7_static_himem, sizeof(i7byte));
|
||||
if (to->memory == NULL) {
|
||||
|
@ -160,7 +163,7 @@ void i7_copy_state(i7process *proc, i7state *to, i7state *from) {
|
|||
to->variables[i] = from->variables[i];
|
||||
}
|
||||
|
||||
void i7_destroy_state(i7process *proc, i7state *s) {
|
||||
void i7_destroy_state(i7process_t *proc, i7state *s) {
|
||||
free(s->memory);
|
||||
s->himem = 0;
|
||||
free(s->i7_object_tree_parent);
|
||||
|
@ -170,7 +173,7 @@ void i7_destroy_state(i7process *proc, i7state *s) {
|
|||
free(s->variables);
|
||||
}
|
||||
|
||||
void i7_destroy_snapshot(i7process *proc, i7snapshot *old) {
|
||||
void i7_destroy_snapshot(i7process_t *proc, i7snapshot *old) {
|
||||
i7_destroy_state(proc, &(old->then));
|
||||
old->valid = 0;
|
||||
}
|
||||
|
@ -182,16 +185,17 @@ i7snapshot i7_new_snapshot(void) {
|
|||
return SS;
|
||||
}
|
||||
|
||||
i7process i7_new_process(void) {
|
||||
i7process proc;
|
||||
i7process_t i7_new_process(void) {
|
||||
i7process_t proc;
|
||||
proc.state = i7_new_state();
|
||||
for (int i=0; i<I7_MAX_SNAPSHOTS; i++) proc.snapshots[i] = i7_new_snapshot();
|
||||
proc.just_undid = 0;
|
||||
proc.snapshot_pos = 0;
|
||||
proc.receiver = i7_default_receiver;
|
||||
return proc;
|
||||
}
|
||||
|
||||
void i7_save_snapshot(i7process *proc) {
|
||||
void i7_save_snapshot(i7process_t *proc) {
|
||||
if (proc->snapshots[proc->snapshot_pos].valid)
|
||||
i7_destroy_snapshot(proc, &(proc->snapshots[proc->snapshot_pos]));
|
||||
proc->snapshots[proc->snapshot_pos] = i7_new_snapshot();
|
||||
|
@ -203,13 +207,13 @@ void i7_save_snapshot(i7process *proc) {
|
|||
// if (setjmp(proc->snapshots[was].env)) fprintf(stdout, "*** Restore! %d ***\n", proc->just_undid);
|
||||
}
|
||||
|
||||
int i7_has_snapshot(i7process *proc) {
|
||||
int i7_has_snapshot(i7process_t *proc) {
|
||||
int will_be = proc->snapshot_pos - 1;
|
||||
if (will_be < 0) will_be = I7_MAX_SNAPSHOTS - 1;
|
||||
return proc->snapshots[will_be].valid;
|
||||
}
|
||||
|
||||
void i7_destroy_latest_snapshot(i7process *proc) {
|
||||
void i7_destroy_latest_snapshot(i7process_t *proc) {
|
||||
int will_be = proc->snapshot_pos - 1;
|
||||
if (will_be < 0) will_be = I7_MAX_SNAPSHOTS - 1;
|
||||
if (proc->snapshots[will_be].valid)
|
||||
|
@ -217,7 +221,7 @@ void i7_destroy_latest_snapshot(i7process *proc) {
|
|||
proc->snapshot_pos = will_be;
|
||||
}
|
||||
|
||||
void i7_restore_snapshot(i7process *proc) {
|
||||
void i7_restore_snapshot(i7process_t *proc) {
|
||||
int will_be = proc->snapshot_pos - 1;
|
||||
if (will_be < 0) will_be = I7_MAX_SNAPSHOTS - 1;
|
||||
if (proc->snapshots[will_be].valid == 0) {
|
||||
|
@ -231,7 +235,7 @@ void i7_restore_snapshot(i7process *proc) {
|
|||
// longjmp(proc->snapshots[was].env, 1);
|
||||
}
|
||||
|
||||
void i7_restore_snapshot_from(i7process *proc, i7snapshot *ss) {
|
||||
void i7_restore_snapshot_from(i7process_t *proc, i7snapshot *ss) {
|
||||
i7_destroy_state(proc, &(proc->state));
|
||||
i7_copy_state(proc, &(proc->state), &(ss->then));
|
||||
}
|
||||
|
@ -240,32 +244,34 @@ void i7_default_receiver(int id, wchar_t c) {
|
|||
if (id == 201) fputc(c, stdout);
|
||||
}
|
||||
|
||||
#ifndef I7_NO_MAIN
|
||||
int main(int argc, char **argv) {
|
||||
i7process proc = i7_new_process();
|
||||
i7_run_process(&proc, i7_default_receiver);
|
||||
int default_main(int argc, char **argv) {
|
||||
i7process_t proc = i7_new_process();
|
||||
i7_run_process(&proc);
|
||||
if (proc.termination_code == 1) {
|
||||
printf("*** Fatal error: halted ***\n");
|
||||
fflush(stdout); fflush(stderr);
|
||||
}
|
||||
return proc.termination_code;
|
||||
}
|
||||
#endif
|
||||
|
||||
i7val fn_i7_mgl_Main(i7process *proc);
|
||||
void i7_run_process(i7process *proc, void (*receiver)(int id, wchar_t c)) {
|
||||
i7val fn_i7_mgl_Main(i7process_t *proc);
|
||||
int i7_run_process(i7process_t *proc) {
|
||||
if (setjmp(proc->execution_env)) {
|
||||
proc->termination_code = 1; /* terminated abnormally */
|
||||
} else {
|
||||
i7_initialise_state(proc);
|
||||
i7_initializer(proc);
|
||||
i7_initialise_streams(proc, receiver);
|
||||
i7_initialise_streams(proc);
|
||||
fn_i7_mgl_Main(proc);
|
||||
proc->termination_code = 0; /* terminated normally */
|
||||
}
|
||||
return proc->termination_code;
|
||||
}
|
||||
void i7_set_process_receiver(i7process_t *proc, void (*receiver)(int id, wchar_t c)) {
|
||||
proc->receiver = receiver;
|
||||
}
|
||||
|
||||
void i7_fatal_exit(i7process *proc) {
|
||||
void i7_fatal_exit(i7process_t *proc) {
|
||||
// int x = 0; printf("%d", 1/x);
|
||||
longjmp(proc->execution_env, 1);
|
||||
}
|
||||
|
@ -369,7 +375,30 @@ int CTarget::begin_generation(code_generation_target *cgt, code_generation *gen)
|
|||
|
||||
generated_segment *saved = CodeGen::select(gen, c_header_inclusion_I7CGS);
|
||||
text_stream *OUT = CodeGen::current(gen);
|
||||
int compile_main = TRUE;
|
||||
target_vm *VM = gen->from_step->for_VM;
|
||||
linked_list *opts = TargetVMs::option_list(VM);
|
||||
text_stream *opt;
|
||||
LOOP_OVER_LINKED_LIST(opt, text_stream, opts) {
|
||||
if (Str::eq_insensitive(opt, I"main")) compile_main = TRUE;
|
||||
else if (Str::eq_insensitive(opt, I"no-main")) compile_main = FALSE;
|
||||
else {
|
||||
#ifdef PROBLEMS_MODULE
|
||||
Problems::fatal("Unknown compilation format option");
|
||||
#endif
|
||||
#ifndef PROBLEMS_MODULE
|
||||
Errors::fatal("Unknown compilation format option");
|
||||
exit(1);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (Architectures::debug_enabled(TargetVMs::get_architecture(VM)))
|
||||
WRITE("#define DEBUG\n");
|
||||
WRITE("#include \"inform7_clib.h\"\n");
|
||||
if (compile_main)
|
||||
WRITE("int main(int argc, char **argv) { return default_main(argc, argv); }\n");
|
||||
WRITE("#pragma clang diagnostic push\n");
|
||||
WRITE("#pragma clang diagnostic ignored \"-Wparentheses-equality\"\n");
|
||||
CodeGen::deselect(gen, saved);
|
||||
|
||||
saved = CodeGen::select(gen, c_library_inclusion_I7CGS);
|
||||
|
@ -397,6 +426,11 @@ int CTarget::end_generation(code_generation_target *cgt, code_generation *gen) {
|
|||
CInputOutputModel::end(gen);
|
||||
CMemoryModel::end(gen); /* must be last to end */
|
||||
|
||||
generated_segment *saved = CodeGen::select(gen, c_initialiser_I7CGS);
|
||||
text_stream *OUT = CodeGen::current(gen);
|
||||
WRITE("#pragma clang diagnostic pop\n");
|
||||
CodeGen::deselect(gen, saved);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -415,3 +415,12 @@ int TargetVMs::compatible_with(target_vm *VM, text_stream *token) {
|
|||
if (Str::eq_insensitive(VM->transpiler_family, token)) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h Ootions.
|
||||
Final code-generators can call this to see what special requests were made.
|
||||
|
||||
=
|
||||
linked_list *TargetVMs::option_list(target_vm *VM) {
|
||||
if (VM == NULL) internal_error("no VM");
|
||||
return VM->format_options;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue