mirror of
https://github.com/ganelson/inform.git
synced 2024-07-01 06:24:58 +03:00
Refactored to remove works hash and enable multiple versions in ext dictionary
This commit is contained in:
parent
0e63cacd7b
commit
baff90449f
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">ARCH_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">ARCH_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_architecture_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_architecture_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">BYTECODE_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">BYTECODE_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">CODEGEN_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">CODEGEN_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">I6T_intervention_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">I6T_intervention_CLASS</span>
|
||||||
|
|
|
@ -87,7 +87,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">CORE_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">CORE_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">bibliographic_datum_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">bibliographic_datum_CLASS</span>
|
||||||
|
|
|
@ -67,7 +67,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">IF_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">IF_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INDEX_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INDEX_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">documentation_ref_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">documentation_ref_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INFLECTIONS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INFLECTIONS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">name_cluster_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">name_cluster_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">KINDS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">KINDS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">dimensional_rule_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">dimensional_rule_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">LINGUISTICS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">LINGUISTICS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">adjectival_phrase_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">adjectival_phrase_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MULTIMEDIA_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MULTIMEDIA_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">blorb_figure_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">blorb_figure_CLASS</span>
|
||||||
|
|
|
@ -548,7 +548,7 @@ nests, respectively.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<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">Supervisor::shared_nest_list</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP4">§4</a><br/>Project Services - <a href="5-ps2.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::shared_nest_list</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP5">§5</a><br/>Project Services - <a href="5-ps2.html#SP5">§5</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</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">shared_nest_list</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">"nest list never sorted"</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">shared_nest_list</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">"nest list never sorted"</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">shared_nest_list</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">shared_nest_list</span><span class="plain-syntax">;</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">SUPERVISOR_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">SUPERVISOR_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">build_methodology_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">build_methodology_CLASS</span>
|
||||||
|
@ -76,8 +76,8 @@ which use this module:
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">control_structure_phrase_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">control_structure_phrase_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">copy_error_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">copy_error_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">element_activation_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">element_activation_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_census_datum_CLASS</span>
|
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_census_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_census_CLASS</span>
|
||||||
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_census_datum_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_dictionary_entry_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">extension_dictionary_entry_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">heading_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">heading_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">heading_tree_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">heading_tree_CLASS</span>
|
||||||
|
@ -89,15 +89,14 @@ which use this module:
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inbuild_search_result_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inbuild_search_result_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inbuild_work_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inbuild_work_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_extension_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_extension_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_kit_ittt_CLASS</span>
|
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_kit_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_kit_CLASS</span>
|
||||||
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_kit_ittt_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_language_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_language_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_pipeline_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_pipeline_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_project_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_project_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_template_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">inform_template_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">kit_dependency_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">kit_dependency_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">known_extension_clash_CLASS</span>
|
<span class="definition-keyword">enum</span> <span class="constant-syntax">known_extension_clash_CLASS</span>
|
||||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inbuild_work_database_entry_CLASS</span>
|
|
||||||
</pre>
|
</pre>
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax">)</span>
|
||||||
|
@ -111,8 +110,8 @@ which use this module:
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">heading</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">heading_tree</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">heading_tree</span><span class="plain-syntax">)</span>
|
||||||
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">heading</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax">)</span>
|
||||||
|
@ -129,8 +128,6 @@ which use this module:
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_template</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_template</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kit_dependency</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kit_dependency</span><span class="plain-syntax">)</span>
|
||||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">)</span>
|
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">)</span>
|
||||||
|
|
||||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
|
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
|
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -106,7 +106,7 @@ fields are blank.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax">} </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure copy_error is accessed in 2/nst, 3/is, 5/ks, 5/ls, 6/inc, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure copy_error is accessed in 2/nst, 3/is, 5/ks, 5/ls, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>And now some creators.
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>And now some creators.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ for later reporting. These are stored in a list.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">source_text_read</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">C</span><span class="plain-syntax">-></span><span class="element-syntax">source_text_read</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::get_source_text</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Copies::get_source_text</span></span>:<br/>Extension Services - <a href="5-es.html#SP5">§5</a><br/>Project Services - <a href="5-ps2.html#SP24">§24</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a><br/>Individual Pages - <a href="7-ip2.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::get_source_text</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Copies::get_source_text</span></span>:<br/>Extension Services - <a href="5-es.html#SP6">§6</a><br/>Project Services - <a href="5-ps2.html#SP24">§24</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a><br/>Individual Pages - <a href="7-ip2.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</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">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_text_read</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_text_read</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_text_read</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">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_text_read</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">feed_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::begin</span><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">feed_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::begin</span><span class="plain-syntax">();</span>
|
||||||
|
|
|
@ -102,7 +102,7 @@ might work with all VMs, while version 8 required a 32-bit architecture.
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure inbuild_edition is accessed in 1/ic, 2/wrk, 2/cps, 2/rqr, 2/nst, 3/bg, 3/ib, 3/is2, 4/em, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps, 5/ps2, 5/ts, 6/hdn, 6/tbs, 6/inc, 6/vmg, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure inbuild_edition is accessed in 1/ic, 2/cps, 2/rqr, 2/nst, 3/bg, 3/ib, 3/is2, 4/em, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps, 5/ps2, 5/ts, 6/hdn, 6/tbs, 6/inc, 6/vmg, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>When a copy is to be duplicated into a nest <span class="extract"><span class="extract-syntax">N</span></span>, we need to work out where
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>When a copy is to be duplicated into a nest <span class="extract"><span class="extract-syntax">N</span></span>, we need to work out where
|
||||||
to put it. For example, version 2.1 of the extension Marbles by Steve Hogarth
|
to put it. For example, version 2.1 of the extension Marbles by Steve Hogarth
|
||||||
would go into <span class="extract"><span class="extract-syntax">N/Extensions/Steve Hogarth/Marbles-v2_1.i7x</span></span>. The following
|
would go into <span class="extract"><span class="extract-syntax">N/Extensions/Steve Hogarth/Marbles-v2_1.i7x</span></span>. The following
|
||||||
|
|
|
@ -158,7 +158,7 @@ we create one of these for each hit:
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure inbuild_search_result is accessed in 2/ce, 3/is, 5/ks, 5/ls, 6/inc, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure inbuild_search_result is accessed in 2/ce, 3/is, 5/ks, 5/ls, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>These can be created only as entries in a list:
|
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>These can be created only as entries in a list:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ others:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::search_for_best</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Nests::search_for_best</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">,</span>
|
<span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::search_for_best</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Nests::search_for_best</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</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">search_list</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">search_list</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">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</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">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||||
|
|
|
@ -81,7 +81,7 @@ we can give a semantic version number range:
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure inbuild_requirement is accessed in 1/ic, 2/wrk, 2/edt, 2/cps, 3/bg, 3/ib, 3/is2, 4/em, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/hdn, 6/tbs, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure inbuild_requirement is accessed in 1/ic, 2/edt, 2/cps, 3/bg, 3/ib, 3/is2, 4/em, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/hdn, 6/tbs, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>Here are some creators:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>Here are some creators:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ we can give a semantic version number range:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">req</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">req</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="function-syntax">Requirements::any_version_of</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Requirements::any_version_of</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP5_4">§5.4</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP5_1_2">§5.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="function-syntax">Requirements::any_version_of</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Requirements::any_version_of</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP5_4">§5.4</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP5_1_2">§5.1.2</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">VersionNumberRanges::any_range</span><span class="plain-syntax">());</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">VersionNumberRanges::any_range</span><span class="plain-syntax">());</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
@ -250,7 +250,7 @@ a requirement, then so will all other copies of it.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Requirements::meets</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Requirements::meets</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">§6</a><br/>Kit Manager - <a href="4-km.html#SP5">§5</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§5</a><br/>Extension Services - <a href="5-es.html#SP15">§15</a><br/>Kit Services - <a href="5-ks.html#SP13_4">§13.4</a><br/>Inclusions - <a href="6-inc.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">edition</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Requirements::meets</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Requirements::meets</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">§6</a><br/>Kit Manager - <a href="4-km.html#SP5">§5</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§5</a><br/>Extension Services - <a href="5-es.html#SP16">§16</a><br/>Kit Services - <a href="5-ks.html#SP13_4">§13.4</a><br/>Inclusions - <a href="6-inc.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">edition</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</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">req</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">req</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">req</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</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">req</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">)</span>
|
||||||
|
|
|
@ -66,7 +66,7 @@ function togglePopup(material_id) {
|
||||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#2">Chapter 2: Conceptual Framework</a></li><li><b>Works</b></li></ul></div>
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#2">Chapter 2: Conceptual Framework</a></li><li><b>Works</b></li></ul></div>
|
||||||
<p class="purpose">To store, hash code and compare title/author pairs used to identify works.</p>
|
<p class="purpose">To store, hash code and compare title/author pairs used to identify works.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="2-wrk.html#SP1">§1. Works</a></li><li><a href="2-wrk.html#SP5">§5. Printing</a></li><li><a href="2-wrk.html#SP8">§8. Identification</a></li><li><a href="2-wrk.html#SP11">§11. The database of known works</a></li><li><a href="2-wrk.html#SP15">§15. Documentation links</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="2-wrk.html#SP1">§1. Works</a></li><li><a href="2-wrk.html#SP5">§5. Printing</a></li><li><a href="2-wrk.html#SP8">§8. Identification</a></li><li><a href="2-wrk.html#SP11">§11. Documentation links</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Works. </b>A "work" is a single artistic or programming creation; for example, the IF
|
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Works. </b>A "work" is a single artistic or programming creation; for example, the IF
|
||||||
story Bronze by Emily Short might be a work. Mamy versions of this IF story
|
story Bronze by Emily Short might be a work. Mamy versions of this IF story
|
||||||
|
@ -98,10 +98,8 @@ combination of the textual names and the hash code:
|
||||||
not subsequently altered.
|
not subsequently altered.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">WORK_HASH_CODING_BASE</span><span class="plain-syntax"> </span><span class="constant-syntax">499</span>
|
|
||||||
</pre>
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Works::new</span></span>:<br/><a href="2-wrk.html#SP10">§10</a><br/>Requirements - <a href="2-rqr.html#SP2">§2</a><br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Extension Manager - <a href="4-em.html#SP4">§4</a><br/>Language Manager - <a href="4-lm.html#SP3">§3</a><br/>Project Bundle Manager - <a href="4-pbm.html#SP2">§2</a><br/>Project File Manager - <a href="4-pfm.html#SP2">§2</a><br/>Template Manager - <a href="4-tm.html#SP3">§3</a><br/>Extension Services - <a href="5-es.html#SP2_3">§2.3</a><br/>Kit Services - <a href="5-ks.html#SP5_3">§5.3</a>, <a href="5-ks.html#SP5_4">§5.4</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Headings - <a href="6-hdn.html#SP12_3">§12.3</a><br/>Inclusions - <a href="6-inc.html#SP4_1">§4.1</a><br/>Dictionary - <a href="7-dct.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Works::new</span></span>:<br/><a href="2-wrk.html#SP10">§10</a><br/>Requirements - <a href="2-rqr.html#SP2">§2</a><br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Extension Manager - <a href="4-em.html#SP4">§4</a><br/>Language Manager - <a href="4-lm.html#SP3">§3</a><br/>Project Bundle Manager - <a href="4-pbm.html#SP2">§2</a><br/>Project File Manager - <a href="4-pfm.html#SP2">§2</a><br/>Template Manager - <a href="4-tm.html#SP3">§3</a><br/>Extension Services - <a href="5-es.html#SP2_3">§2.3</a><br/>Kit Services - <a href="5-ks.html#SP5_3">§5.3</a>, <a href="5-ks.html#SP5_4">§5.4</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Headings - <a href="6-hdn.html#SP12_3">§12.3</a><br/>Inclusions - <a href="6-inc.html#SP4_1">§4.1</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP3" class="function-link"><span class="function-syntax">Works::new_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</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">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP3" class="function-link"><span class="function-syntax">Works::new_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new_raw</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Works::new_raw</span></span>:<br/>Kit Manager - <a href="4-km.html#SP3">§3</a><br/>Pipeline Manager - <a href="4-pm.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new_raw</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Works::new_raw</span></span>:<br/>Kit Manager - <a href="4-km.html#SP3">§3</a><br/>Pipeline Manager - <a href="4-pm.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||||
|
@ -137,14 +135,13 @@ preserved for use in text output, but not identification.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">work</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">work</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP3_1"></a><b>§3.1. </b>We hash-code all works on arrival, using the X 30011 algorithm, with 499
|
<p class="commentary firstcommentary"><a id="SP3_1"></a><b>§3.1. </b>We hash-code all works on arrival, using the X 30011 algorithm, on the text
|
||||||
(coprime to 30011) as base, to the text of the pseudo-pathname <span class="extract"><span class="extract-syntax">Author/Title</span></span>.
|
of the pseudo-pathname <span class="extract"><span class="extract-syntax">Author/Title</span></span>. The result is an integer between 0 and
|
||||||
</p>
|
the following constant minus 1.
|
||||||
|
|
||||||
<p class="commentary">The hash code is an integer between 0 and the following constant minus 1,
|
|
||||||
derived from its title and author name.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">WORK_HASH_CODING_BASE</span><span class="plain-syntax"> </span><span class="constant-syntax">499</span><span class="plain-syntax"> </span><span class="comment-syntax"> this is coprime to 30011</span>
|
||||||
|
</pre>
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compute the hash code</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compute the hash code</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -186,7 +183,7 @@ begins at the start of the text, after a hyphen, or after a bracket. Thus
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::write_to_HTML_file</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Works::write_to_HTML_file</span></span>:<br/><a href="2-wrk.html#SP6">§6</a><br/>Dictionary - <a href="7-dct.html#SP19_2">§19.2</a><br/>Individual Pages - <a href="7-ip2.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">fancy</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::write_to_HTML_file</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Works::write_to_HTML_file</span></span>:<br/><a href="2-wrk.html#SP6">§6</a><br/>Dictionary - <a href="7-dct.html#SP18_2">§18.2</a><br/>Individual Pages - <a href="7-ip2.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">fancy</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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_title</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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_title</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">fancy</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</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">fancy</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</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">" by "</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">" by "</span><span class="plain-syntax">);</span>
|
||||||
|
@ -199,7 +196,7 @@ generates its Extensions index entries.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::write_link_to_HTML_file</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Works::write_link_to_HTML_file</span></span>:<br/>Dictionary - <a href="7-dct.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::write_link_to_HTML_file</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Works::write_link_to_HTML_file</span></span>:<br/>Dictionary - <a href="7-dct.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"href='Extensions/%S/%S.html' style=\"text-decoration: none\""</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"href='Extensions/%S/%S.html' style=\"text-decoration: none\""</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</span><span class="plain-syntax">);</span>
|
||||||
|
@ -248,7 +245,7 @@ order-preserving. To emphasise this we return true or false rather than a
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::match</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Works::match</span></span>:<br/><a href="2-wrk.html#SP10">§10</a>, <a href="2-wrk.html#SP11">§11</a>, <a href="2-wrk.html#SP12">§12</a>, <a href="2-wrk.html#SP13">§13</a><br/>Headings - <a href="6-hdn.html#SP21">§21</a>, <a href="6-hdn.html#SP21_2">§21.2</a><br/>Dictionary - <a href="7-dct.html#SP12">§12</a>, <a href="7-dct.html#SP18">§18</a>, <a href="7-dct.html#SP18_2">§18.2</a><br/>Census - <a href="7-cns.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::match</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Works::match</span></span>:<br/><a href="2-wrk.html#SP10">§10</a><br/>Headings - <a href="6-hdn.html#SP21">§21</a>, <a href="6-hdn.html#SP21_2">§21.2</a><br/>Dictionary - <a href="7-dct.html#SP11">§11</a>, <a href="7-dct.html#SP17">§17</a>, <a href="7-dct.html#SP17_2">§17.2</a><br/>Census - <a href="7-cns.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax"> != </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax"> != </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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>
|
||||||
|
@ -256,42 +253,16 @@ order-preserving. To emphasise this we return true or false rather than a
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>These are quite a deal slower, but are trichotomous and can be used for
|
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>This is quite a deal slower, but is trichotomous and can be used for sorting.
|
||||||
sorting.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::compare</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Works::compare</span></span>:<br/>Dictionary - <a href="7-dct.html#SP18">§18</a><br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::compare</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Works::compare</span></span>:<br/>Extension Services - <a href="5-es.html#SP3">§3</a><br/>Dictionary - <a href="7-dct.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::compare_by_title</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Works::compare_by_title</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::compare_by_date</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Works::compare_by_date</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eid2</span><span class="plain-syntax">), </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::compare_by_length</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Works::compare_by_length</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eid2</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">eid1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">eid2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_sort_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eid2</span><span class="plain-syntax">), </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_sort_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">eid1</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eid2</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>Because Basic Inform and the Standard Rules extensions are treated slightly
|
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>Because Basic Inform and the Standard Rules extensions are treated slightly
|
||||||
differently by the documentation, and so forth, it's convenient to provide a
|
differently by the documentation, and so forth, it's convenient to provide a
|
||||||
|
@ -300,249 +271,34 @@ single function testing if a work refers to them.
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::is_standard_rules</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Works::is_standard_rules</span></span>:<br/><a href="2-wrk.html#SP6">§6</a>, <a href="2-wrk.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP2_1">§2.1</a><br/>Individual Pages - <a href="7-ip2.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::is_standard_rules</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Works::is_standard_rules</span></span>:<br/><a href="2-wrk.html#SP6">§6</a>, <a href="2-wrk.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP2_1">§2.1</a><br/>Individual Pages - <a href="7-ip2.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</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">a_work_for_standard_rules</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">a_work_for_standard_rules</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax"> =</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax"> =</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Standard Rules"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Graham Nelson"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Standard Rules"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Graham Nelson"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax">, </span><span class="constant-syntax">HYPOTHETICAL_WDBC</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">work</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">work</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">a_work_for_standard_rules</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::is_basic_inform</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Works::is_basic_inform</span></span>:<br/><a href="2-wrk.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::is_basic_inform</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Works::is_basic_inform</span></span>:<br/><a href="2-wrk.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</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">a_work_for_basic_inform</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">a_work_for_basic_inform</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax"> =</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax"> =</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Basic Inform"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Graham Nelson"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Basic Inform"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Graham Nelson"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax">, </span><span class="constant-syntax">HYPOTHETICAL_WDBC</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">work</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">work</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">a_work_for_basic_inform</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. The database of known works. </b>We will need to be able to give rapid answers to questions like "is there
|
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. Documentation links. </b>This is where HTML links to extension documentation are created; the URL for
|
||||||
an installed extension with this work?" and "does any entry in the dictionary
|
|
||||||
relate to this work?": there may be many extensions and very many dictionary
|
|
||||||
entries, so we keep an incidence count of each work and in what context it
|
|
||||||
has been used, and store that in a hash table. Note that each distinct work
|
|
||||||
is recorded only once in the table: this is important, as although an
|
|
||||||
individual extension can only be loaded or installed once, it could be
|
|
||||||
referred to in the dictionary dozens or even hundreds of times.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="commentary">The table is unsorted and is intended for rapid searching. Typically there
|
|
||||||
will be only a handful of works in the list of those with a given hash code:
|
|
||||||
indeed, the typical number will be 0 or 1.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="commentary">Works are entered into the database with one of the following contexts:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">NO_WDB_CONTEXTS</span><span class="plain-syntax"> </span><span class="constant-syntax">6</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">LOADED_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">INSTALLED_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">HYPOTHETICAL_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">USEWITH_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
|
|
||||||
<span class="definition-keyword">define</span> <span class="constant-syntax">CLAIMED_WDBC</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
|
|
||||||
</pre>
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
|
||||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hash_next</span><span class="plain-syntax">; </span><span class="comment-syntax"> next one in hashed work database</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">NO_WDB_CONTEXTS</span><span class="plain-syntax">];</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_usage_date</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sort_usage_date</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">word_count_text</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">word_count_number</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax">;</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">work_database_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="constant-syntax">WORK_HASH_CODING_BASE</span><span class="plain-syntax">];</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::add_to_database</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Works::add_to_database</span></span>:<br/><a href="2-wrk.html#SP10">§10</a><br/>Extension Manager - <a href="4-em.html#SP5">§5</a><br/>Kit Manager - <a href="4-km.html#SP4">§4</a><br/>Language Manager - <a href="4-lm.html#SP4">§4</a><br/>Pipeline Manager - <a href="4-pm.html#SP4">§4</a><br/>Project Bundle Manager - <a href="4-pbm.html#SP3">§3</a><br/>Project File Manager - <a href="4-pfm.html#SP3">§3</a><br/>Template Manager - <a href="4-tm.html#SP4">§4</a><br/>Extension Services - <a href="5-es.html#SP2">§2</a><br/>Headings - <a href="6-hdn.html#SP12_3">§12.3</a><br/>Inclusions - <a href="6-inc.html#SP4_1">§4.1</a><br/>Dictionary - <a href="7-dct.html#SP4">§4</a><br/>Census - <a href="7-cns.html#SP7_2">§7.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">context</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">work_database_created</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">work_database_created</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="constant-syntax">WORK_HASH_CODING_BASE</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">)) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="identifier-syntax">context</span><span class="plain-syntax">]++;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> }</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">hash_next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">] = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">work</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="constant-syntax">NO_WDB_CONTEXTS</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="identifier-syntax">context</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">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">last_usage_date</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">sort_usage_date</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="identifier-syntax">word_count_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
</pre>
|
|
||||||
<ul class="endnotetexts"><li>The structure inbuild_work_database_entry is accessed in 1/ic, 2/edt, 2/cps, 2/rqr, 3/bg, 3/ib, 3/is2, 4/em, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/hdn, 6/tbs, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2 and here.</li></ul>
|
|
||||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>This gives us reasonably rapid access to a shared date:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::set_usage_date</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Works::set_usage_date</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">date</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">)) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</span><span class="plain-syntax">, </span><span class="identifier-syntax">date</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> }</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::set_sort_date</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Works::set_sort_date</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">date</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">)) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax">, </span><span class="identifier-syntax">date</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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="function-syntax">Works::get_usage_date</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Works::get_usage_date</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">] > </span><span class="constant-syntax">0</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">I</span><span class="string-syntax">"Once upon a time"</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">I</span><span class="string-syntax">"Never"</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">I</span><span class="string-syntax">"---"</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="function-syntax">Works::get_sort_date</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Works::get_sort_date</span></span>:<br/><a href="2-wrk.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">] > </span><span class="constant-syntax">0</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">I</span><span class="string-syntax">"00000000000000Once upon a time"</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">I</span><span class="string-syntax">"00000000000000Never"</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">I</span><span class="string-syntax">"000000000000000"</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::set_word_count</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Works::set_word_count</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wc</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_text</span><span class="plain-syntax">, </span><span class="string-syntax">"%08d words"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wc</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_number</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wc</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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="function-syntax">Works::get_sort_word_count</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Works::get_sort_word_count</span></span>:<br/><a href="2-wrk.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_text</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">] > </span><span class="constant-syntax">0</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">I</span><span class="string-syntax">"00000000I did read this, but forgot"</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">I</span><span class="string-syntax">"00000000I've never read this"</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">I</span><span class="string-syntax">"---"</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::forgot</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Works::forgot</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">] > </span><span class="constant-syntax">0</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">TRUE</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>
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::never</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Works::never</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">] > </span><span class="constant-syntax">0</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</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">FALSE</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::get_word_count</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Works::get_word_count</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</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">hc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">word_count_number</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 firstcommentary"><a id="SP13"></a><b>§13. </b>The purpose of the hash table is to enable us to reply quickly when asked
|
|
||||||
for one of the following usage counts:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Works::no_times_used_in_context</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Works::no_times_used_in_context</span></span>:<br/>Dictionary - <a href="7-dct.html#SP11">§11</a><br/>Census - <a href="7-cns.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">context</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">inbuild_work_hash_code</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">)</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[</span><span class="identifier-syntax">context</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 firstcommentary"><a id="SP14"></a><b>§14. </b>The work hash table makes quite interesting reading, so:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::log_work_hash_table</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Works::log_work_hash_table</span></span>:<br/>The Mini-Website - <a href="7-tm.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">hc</span><span class="plain-syntax">, </span><span class="identifier-syntax">total</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Work identifier hash table:\n"</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">hc</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">hc</span><span class="plain-syntax"><</span><span class="constant-syntax">WORK_HASH_CODING_BASE</span><span class="plain-syntax">; </span><span class="identifier-syntax">hc</span><span class="plain-syntax">++) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work_database_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iwde</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hash_of_works</span><span class="plain-syntax">[</span><span class="identifier-syntax">hc</span><span class="plain-syntax">]; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">; </span><span class="identifier-syntax">iwde</span><span class="plain-syntax"> = </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">hash_next</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">total</span><span class="plain-syntax">++;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%03d %3d %3d %3d %3d %X\n"</span><span class="plain-syntax">,</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">hc</span><span class="plain-syntax">, </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[1],</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">incidence_count</span><span class="plain-syntax">[3],</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iwde</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> }</span>
|
|
||||||
<span class="plain-syntax"> }</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%d entries in all\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">total</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
</pre>
|
|
||||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. Documentation links. </b>This is where HTML links to extension documentation are created; the URL for
|
|
||||||
each extension's page is generated from its <span class="extract"><span class="extract-syntax">inbuild_work</span></span>.
|
each extension's page is generated from its <span class="extract"><span class="extract-syntax">inbuild_work</span></span>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::begin_extension_link</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Works::begin_extension_link</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::begin_extension_link</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Works::begin_extension_link</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</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">link</span><span class="plain-syntax">, </span><span class="string-syntax">"href='inform://Extensions/Extensions/"</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">link</span><span class="plain-syntax">, </span><span class="string-syntax">"href='inform://Extensions/Extensions/"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP15" class="function-link"><span class="function-syntax">Works::escape_apostrophes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::escape_apostrophes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_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">link</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="string-syntax">"/"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP15" class="function-link"><span class="function-syntax">Works::escape_apostrophes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::escape_apostrophes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">link</span><span class="plain-syntax">, </span><span class="string-syntax">".html' "</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">link</span><span class="plain-syntax">, </span><span class="string-syntax">".html' "</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="string-syntax">"title=\"%S\" "</span><span class="plain-syntax">, </span><span class="identifier-syntax">rubric</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="string-syntax">"title=\"%S\" "</span><span class="plain-syntax">, </span><span class="identifier-syntax">rubric</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="string-syntax">"title=\"%X\" "</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="string-syntax">"title=\"%X\" "</span><span class="plain-syntax">, </span><span class="identifier-syntax">work</span><span class="plain-syntax">);</span>
|
||||||
|
@ -562,7 +318,7 @@ each extension's page is generated from its <span class="extract"><span class="e
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::end_extension_link</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Works::end_extension_link</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Works::end_extension_link</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Works::end_extension_link</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -113,7 +113,7 @@ which stores data about extensions used by the Inform compiler.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::from_copy</span></span>:<br/><a href="4-em.html#SP8">§8</a>, <a href="4-em.html#SP9">§9</a><br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP26">§26</a><br/>Source Text - <a href="6-st.html#SP12">§12</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a><br/>Census - <a href="7-cns.html#SP5">§5</a><br/>Individual Pages - <a href="7-ip2.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::from_copy</span></span>:<br/><a href="4-em.html#SP8">§8</a>, <a href="4-em.html#SP9">§9</a><br/>Extension Services - <a href="5-es.html#SP8">§8</a><br/>Project Services - <a href="5-ps2.html#SP26">§26</a><br/>Source Text - <a href="6-st.html#SP12">§12</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a><br/>Census - <a href="7-cns.html#SP5">§5</a>, <a href="7-cns.html#SP6">§6</a><br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a><br/>Individual Pages - <a href="7-ip2.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</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">C</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_genre</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">C</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_genre</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">RETRIEVE_POINTER_inform_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">metadata</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">RETRIEVE_POINTER_inform_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">metadata</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
|
@ -164,11 +164,9 @@ So we'll open it and look.
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></span>:<br/><a href="4-em.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></span>:<br/><a href="4-em.html#SP6">§6</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Searching. </b>Here we look through a nest to find all extensions matching the supplied
|
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Searching. </b>Here we look through a nest to find all extensions matching the supplied
|
||||||
|
@ -290,7 +288,7 @@ the current VM settings.
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::ensure_graphed</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::ensure_graphed</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-es.html#SP5" class="function-link"><span class="function-syntax">Extensions::construct_graph</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="5-es.html#SP6" class="function-link"><span class="function-syntax">Extensions::construct_graph</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</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">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">-></span><span class="element-syntax">use_edges</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">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">-></span><span class="element-syntax">use_edges</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><a href="4-em.html#SP8" class="function-link"><span class="function-syntax">ExtensionManager::ensure_graphed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="4-em.html#SP8" class="function-link"><span class="function-syntax">ExtensionManager::ensure_graphed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||||
|
@ -300,7 +298,7 @@ the current VM settings.
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::read_source_text_for</span></span>:<br/><a href="4-em.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">G</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::read_source_text_for</span></span>:<br/><a href="4-em.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">G</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-es.html#SP6" class="function-link"><span class="function-syntax">Extensions::read_source_text_for</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::read_source_text_for</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<nav role="progress"><div class="progresscontainer">
|
<nav role="progress"><div class="progresscontainer">
|
||||||
|
|
|
@ -160,11 +160,8 @@ a valid metadata file.
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">KitManager::claim_folder_as_copy</span></span>:<br/><a href="4-km.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">KitManager::claim_folder_as_copy</span></span>:<br/><a href="4-km.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kit_metadata.txt"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kit_metadata.txt"</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</span><span class="plain-syntax">))</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-km.html#SP3" class="function-link"><span class="function-syntax">KitManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-km.html#SP3" class="function-link"><span class="function-syntax">KitManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</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">NULL</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">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -160,11 +160,8 @@ a valid metadata file. The name should be in English text, without accents.
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">LanguageManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">LanguageManager::claim_folder_as_copy</span></span>:<br/><a href="4-lm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">LanguageManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">LanguageManager::claim_folder_as_copy</span></span>:<br/><a href="4-lm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"about.txt"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"about.txt"</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</span><span class="plain-syntax">))</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-lm.html#SP3" class="function-link"><span class="function-syntax">LanguageManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-lm.html#SP3" class="function-link"><span class="function-syntax">LanguageManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</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">NULL</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">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -139,9 +139,7 @@ not a file, false if we know the reverse, and otherwise not applicable.
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Searching. </b>Here we look through a nest to find all projects matching the supplied
|
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Searching. </b>Here we look through a nest to find all projects matching the supplied
|
||||||
|
|
|
@ -140,9 +140,7 @@ or <span class="extract"><span class="extract-syntax">.i7</span></span>.
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Searching. </b>Here we look through a nest to find all projects matching the supplied
|
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Searching. </b>Here we look through a nest to find all projects matching the supplied
|
||||||
|
|
|
@ -142,7 +142,6 @@ not a file, false if we know the reverse, and otherwise not applicable.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pm.html#SP3" class="function-link"><span class="function-syntax">PipelineManager::new_copy</span></a><span class="plain-syntax">(</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pm.html#SP3" class="function-link"><span class="function-syntax">PipelineManager::new_copy</span></a><span class="plain-syntax">(</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-edt.html#SP1" class="function-link"><span class="function-syntax">Editions::new</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">unext</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">), </span><span class="identifier-syntax">V</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-edt.html#SP1" class="function-link"><span class="function-syntax">Editions::new</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">unext</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">), </span><span class="identifier-syntax">V</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">unext</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">unext</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</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">C</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -139,11 +139,8 @@ either a manifest file, or else an <span class="extract"><span class="extract-sy
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">TemplateManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">TemplateManager::claim_folder_as_copy</span></span>:<br/><a href="4-tm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">TemplateManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">TemplateManager::claim_folder_as_copy</span></span>:<br/><a href="4-tm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"(manifest).txt"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"(manifest).txt"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index.html"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index.html"</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary1</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary2</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary1</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary2</span><span class="plain-syntax">)))</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-tm.html#SP3" class="function-link"><span class="function-syntax">TemplateManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-tm.html#SP3" class="function-link"><span class="function-syntax">TemplateManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</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">C</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">NULL</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">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -67,7 +67,7 @@ function togglePopup(material_id) {
|
||||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#5">Chapter 5: Genre Services</a></li><li><b>Extension Services</b></li></ul></div>
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#5">Chapter 5: Genre Services</a></li><li><b>Extension Services</b></li></ul></div>
|
||||||
<p class="purpose">Behaviour specific to copies of the extension genre.</p>
|
<p class="purpose">Behaviour specific to copies of the extension genre.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="5-es.html#SP1">§1. Scanning metadata</a></li><li><a href="5-es.html#SP3">§3. Search list</a></li><li><a href="5-es.html#SP5">§5. Graph</a></li><li><a href="5-es.html#SP6">§6. Read source text</a></li><li><a href="5-es.html#SP8">§8. Miscellaneous</a></li><li><a href="5-es.html#SP14">§14. Version requirements</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="5-es.html#SP1">§1. Scanning metadata</a></li><li><a href="5-es.html#SP3">§3. Cached metadata</a></li><li><a href="5-es.html#SP4">§4. Search list</a></li><li><a href="5-es.html#SP6">§6. Graph</a></li><li><a href="5-es.html#SP7">§7. Read source text</a></li><li><a href="5-es.html#SP9">§9. Miscellaneous</a></li><li><a href="5-es.html#SP15">§15. Version requirements</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Scanning metadata. </b>An extension has a title and an author name, each of which is limited in
|
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Scanning metadata. </b>An extension has a title and an author name, each of which is limited in
|
||||||
length to one character less than the following constants:
|
length to one character less than the following constants:
|
||||||
|
@ -93,10 +93,14 @@ length to one character less than the following constants:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusion_sentence</span><span class="plain-syntax">; </span><span class="comment-syntax"> Where the source called for this</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusion_sentence</span><span class="plain-syntax">; </span><span class="comment-syntax"> Where the source called for this</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">inbuild_nest</span></span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">inbuild_nest</span></span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">word_count</span><span class="plain-syntax">; </span><span class="comment-syntax"> or 0 if this hasn't been read (yet)</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_usage_date</span><span class="plain-syntax">; </span><span class="comment-syntax"> perhaps on a previous run</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sort_usage_date</span><span class="plain-syntax">; </span><span class="comment-syntax"> used temporarily when sorting</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">has_historically_been_used</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax">} </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure inform_extension is accessed in 3/bg, 3/ib, 3/is2, 3/is3, 4/em, 5/ks, 5/ls, 5/ps, 5/ps2, 5/ts, 6/hdn, 6/tbs, 6/inc, 7/dct, 7/cns, 7/ip2 and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure inform_extension is accessed in 3/bg, 3/ib, 3/is2, 3/is3, 4/em, 5/ks, 5/ls, 5/ps, 5/ps2, 5/ts, 6/hdn, 6/tbs, 6/inc, 7/tm, 7/dct, 7/cns, 7/ip2 and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This is called as soon as a new copy <span class="extract"><span class="extract-syntax">C</span></span> of the extension genre is created.
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This is called as soon as a new copy <span class="extract"><span class="extract-syntax">C</span></span> of the extension genre is created.
|
||||||
We scan the extension file for the title, author, version number and any
|
We scan the extension file for the title, author, version number and any
|
||||||
compatibility notes given (such as "for Glulx only").
|
compatibility notes given (such as "for Glulx only").
|
||||||
|
@ -115,7 +119,6 @@ compatibility notes given (such as "for Glulx only").
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumbers::null</span><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumbers::null</span><span class="plain-syntax">();</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Scan the file</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Scan the file</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Change the edition of the copy in light of the metadata found in the scan</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Change the edition of the copy in light of the metadata found in the scan</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIMED_WDBC</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_title</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">);</span>
|
||||||
|
@ -141,6 +144,10 @@ compatibility notes given (such as "for Glulx only").
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ParseTree::new_tree</span><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ParseTree::new_tree</span><span class="plain-syntax">();</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">has_historically_been_used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">word_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2">§2</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2">§2</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP2_2"></a><b>§2.2. </b>The following scans a potential extension file. If it seems malformed, a
|
<p class="commentary firstcommentary"><a id="SP2_2"></a><b>§2.2. </b>The following scans a potential extension file. If it seems malformed, a
|
||||||
|
@ -336,22 +343,97 @@ are immutable, and need to be for the extensions dictionary to work.
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2">§2</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2">§2</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. Search list. </b>Sometimes ane extension is being looked at in isolation, and then <span class="extract"><span class="extract-syntax">read_into_project</span></span>
|
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. Cached metadata. </b>The following data hides between runs in the <a href="7-dct.html" class="internal">Dictionary</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_usage_date</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_usage_date</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">date</span><span class="plain-syntax">) {</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</span><span class="plain-syntax">, </span><span class="identifier-syntax">date</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_sort_date</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_sort_date</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">date</span><span class="plain-syntax">) {</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax">, </span><span class="identifier-syntax">date</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="function-syntax">Extensions::get_usage_date</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">Extensions::get_usage_date</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">last_usage_date</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="function-syntax">Extensions::get_sort_date</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">sort_usage_date</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_word_count</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_word_count</span></span>:<br/>Dictionary - <a href="7-dct.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wc</span><span class="plain-syntax">) {</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">word_count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wc</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::get_word_count</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_word_count</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">word_count</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="function-syntax">Extensions::get_sort_word_count</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</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">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%8d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">word_count</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">T</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::compare_by_edition</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Extensions::compare_by_edition</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">E2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">VersionNumbers::cmp</span><span class="plain-syntax">(</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">version</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">version</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::compare_by_date</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Extensions::compare_by_date</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">E2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">), </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_edition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::compare_by_author</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Extensions::compare_by_author</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">E2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">,</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_edition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::compare_by_title</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Extensions::compare_by_title</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">E2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">,</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_edition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::compare_by_length</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Extensions::compare_by_length</span></span>:<br/>Census - <a href="7-cns.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">E2</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">"bad work match"</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">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">(</span>
|
||||||
|
<span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_sort_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">), </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_sort_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_edition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax">}</span>
|
||||||
|
</pre>
|
||||||
|
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Search list. </b>Sometimes ane extension is being looked at in isolation, and then <span class="extract"><span class="extract-syntax">read_into_project</span></span>
|
||||||
will be <span class="extract"><span class="extract-syntax">NULL</span></span>; but if it is being loaded to be included in the source text of a
|
will be <span class="extract"><span class="extract-syntax">NULL</span></span>; but if it is being loaded to be included in the source text of a
|
||||||
project, then...
|
project, then...
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_associated_project</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_associated_project</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_associated_project</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_associated_project</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b>...and this affects its search list, because now its own inclusions can see
|
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>...and this affects its search list, because now its own inclusions can see
|
||||||
the Materials folder of the project in question:
|
the Materials folder of the project in question:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<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">Extensions::nest_list</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Extensions::nest_list</span></span>:<br/><a href="5-es.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::nest_list</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Extensions::nest_list</span></span>:<br/><a href="5-es.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</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">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</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">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||||
|
@ -365,7 +447,7 @@ the Materials folder of the project in question:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. Graph. </b>The dependency graph is not so much constructed as discovered; dependencies
|
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Graph. </b>The dependency graph is not so much constructed as discovered; dependencies
|
||||||
are made to each other extension as it's Included in this one, during the
|
are made to each other extension as it's Included in this one, during the
|
||||||
course of reading in the text.
|
course of reading in the text.
|
||||||
</p>
|
</p>
|
||||||
|
@ -378,13 +460,13 @@ no project involved, we must take action ourselves.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::construct_graph</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">Extensions::construct_graph</span></span>:<br/>Extension Manager - <a href="4-em.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Extensions::construct_graph</span></span>:<br/>Extension Manager - <a href="4-em.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::set_start_of_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">sfsm</span><span class="plain-syntax">, -1);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::set_start_of_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">sfsm</span><span class="plain-syntax">, -1);</span>
|
||||||
<span class="plain-syntax"> </span><a href="6-inc.html#SP1" class="function-link"><span class="function-syntax">Inclusions::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="6-inc.html#SP1" class="function-link"><span class="function-syntax">Inclusions::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Read source text. </b>The scan only skimmed the surface of the file, and didn't try to parse it as
|
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. Read source text. </b>The scan only skimmed the surface of the file, and didn't try to parse it as
|
||||||
natural language text with Preform. But if the extension turns out to be one
|
natural language text with Preform. But if the extension turns out to be one
|
||||||
that we need to use for something, we'll need to read its full text eventually.
|
that we need to use for something, we'll need to read its full text eventually.
|
||||||
This is that time.
|
This is that time.
|
||||||
|
@ -394,24 +476,24 @@ This is that time.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Extensions::read_source_text_for</span></span>:<br/>Extension Manager - <a href="4-em.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Extensions::read_source_text_for</span></span>:<br/>Extension Manager - <a href="4-em.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="5-ls.html#SP10" class="function-link"><span class="function-syntax">Languages::find_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"English"</span><span class="plain-syntax">, </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="5-ls.html#SP10" class="function-link"><span class="function-syntax">Languages::find_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"English"</span><span class="plain-syntax">, </span><a href="5-es.html#SP5" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-ls.html#SP8" class="function-link"><span class="function-syntax">Languages::read_Preform_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="5-ls.html#SP8" class="function-link"><span class="function-syntax">Languages::read_Preform_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><a href="5-es.html#SP5" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</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">doc_only</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">doc_only</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">census_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">doc_only</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">census_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">doc_only</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Concoct a synopsis for the extension to be read</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Concoct a synopsis for the extension to be read</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_file</span><span class="plain-syntax"> = </span><a href="6-st.html#SP3" class="function-link"><span class="function-syntax">SourceText::read_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">, </span><span class="identifier-syntax">doc_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_file</span><span class="plain-syntax"> = </span><a href="6-st.html#SP3" class="function-link"><span class="function-syntax">SourceText::read_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">, </span><span class="identifier-syntax">doc_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">synopsis</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">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</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">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">-></span><span class="identifier-syntax">your_ref</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">-></span><span class="identifier-syntax">your_ref</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Break the text into sentences</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Break the text into sentences</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP6_1"></a><b>§6.1. </b>We concoct a textual synopsis in the form
|
<p class="commentary firstcommentary"><a id="SP7_1"></a><b>§7.1. </b>We concoct a textual synopsis in the form
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -422,7 +504,7 @@ we dare not assume <span class="extract"><span class="extract-syntax">stdout</sp
|
||||||
range, we flatten them from general ISO to plain ASCII.
|
range, we flatten them from general ISO to plain ASCII.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Concoct a synopsis for the extension to be read</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Concoct a synopsis for the extension to be read</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -433,29 +515,29 @@ range, we flatten them from general ISO to plain ASCII.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::put</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::put</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Characters::make_filename_safe</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">)));</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Characters::make_filename_safe</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">)));</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP6">§6</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP7">§7</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP6_2"></a><b>§6.2. </b>Note that if there is an active project, then we are reading the extension
|
<p class="commentary firstcommentary"><a id="SP7_2"></a><b>§7.2. </b>Note that if there is an active project, then we are reading the extension
|
||||||
in order to include it in that, and so we send it to the project's syntax tree,
|
in order to include it in that, and so we send it to the project's syntax tree,
|
||||||
rather than to the extension's own one. But if we are simply examining the
|
rather than to the extension's own one. But if we are simply examining the
|
||||||
extension by running <span class="extract"><span class="extract-syntax">-graph</span></span> on it in the Inbuild command line, for example,
|
extension by running <span class="extract"><span class="extract-syntax">-graph</span></span> on it in the Inbuild command line, for example,
|
||||||
then its sentences will go to the extension's own tree.
|
then its sentences will go to the extension's own tree.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Break the text into sentences</span><span class="named-paragraph-number">6.2</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Break the text into sentences</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_file</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_read</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_file</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_read</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXW</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXW</span><span class="plain-syntax">))</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP6_2_2" class="named-paragraph-link"><span class="named-paragraph">Break the extension's text into body and documentation</span><span class="named-paragraph-number">6.2.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-es.html#SP7_2_2" class="named-paragraph-link"><span class="named-paragraph">Break the extension's text into body and documentation</span><span class="named-paragraph-number">7.2.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_project</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_project</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">project</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">project</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</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">project</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">project</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::break_into_extension_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::break_into_extension_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP6">§6</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP7">§7</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP6_2_1"></a><b>§6.2.1. </b>If an extension file contains the special text (outside literal mode) of
|
<p class="commentary firstcommentary"><a id="SP7_2_1"></a><b>§7.2.1. </b>If an extension file contains the special text (outside literal mode) of
|
||||||
<span class="extract"><span class="extract-syntax">---- Documentation ----</span></span> then this is taken as the end of the Inform source,
|
<span class="extract"><span class="extract-syntax">---- Documentation ----</span></span> then this is taken as the end of the Inform source,
|
||||||
and the beginning of a snippet of documentation about the extension; text from
|
and the beginning of a snippet of documentation about the extension; text from
|
||||||
that point on is saved until later, but not broken into sentences for the
|
that point on is saved until later, but not broken into sentences for the
|
||||||
|
@ -470,7 +552,7 @@ and no documentation.
|
||||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> FALSE</span>
|
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> FALSE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP6_2_2"></a><b>§6.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Break the extension's text into body and documentation</span><span class="named-paragraph-number">6.2.2</span></span><span class="Preform-comment-syntax"> =</span>
|
<p class="commentary firstcommentary"><a id="SP7_2_2"></a><b>§7.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Break the extension's text into body and documentation</span><span class="named-paragraph-number">7.2.2</span></span><span class="Preform-comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -479,14 +561,14 @@ and no documentation.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">documentation_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><extension-body></span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">documentation_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><extension-body></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">E</span><span class="plain-syntax">-></span><span class="element-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> mark this to be sentence-broken</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">body_text_unbroken</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> mark this to be sentence-broken</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP6_2">§6.2</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP7_2">§7.2</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>When the extension source text was read from its <span class="extract"><span class="extract-syntax">source_file</span></span>, we
|
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>When the extension source text was read from its <span class="extract"><span class="extract-syntax">source_file</span></span>, we
|
||||||
attached a reference to say which <span class="extract"><span class="extract-syntax">inform_extension</span></span> it was, and here we
|
attached a reference to say which <span class="extract"><span class="extract-syntax">inform_extension</span></span> it was, and here we
|
||||||
make use of that:
|
make use of that:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::corresponding_to</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Extensions::corresponding_to</span></span>:<br/>Headings - <a href="6-hdn.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::corresponding_to</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Extensions::corresponding_to</span></span>:<br/>Headings - <a href="6-hdn.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</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">sf</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">sf</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">sf</span><span class="plain-syntax">-></span><span class="identifier-syntax">your_ref</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">sf</span><span class="plain-syntax">-></span><span class="identifier-syntax">your_ref</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
|
@ -494,7 +576,7 @@ make use of that:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. Miscellaneous. </b></p>
|
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. Miscellaneous. </b></p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||||
|
@ -510,7 +592,7 @@ make use of that:
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_author_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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_author_name</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>Three pieces of information will be set later on, by other parts of Inform
|
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>Three pieces of information will be set later on, by other parts of Inform
|
||||||
calling the routines below.
|
calling the routines below.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -528,12 +610,12 @@ that happens, the following function will be called to set the rubric.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Extension rubric: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">rubric_as_lexed</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Extension rubric: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">rubric_as_lexed</span><span class="plain-syntax">);</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="function-syntax">Extensions::get_rubric</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_rubric</span></span>:<br/>Census - <a href="7-cns.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::get_rubric</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_rubric</span></span>:<br/>Census - <a href="7-cns.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">rubric_as_lexed</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">rubric_as_lexed</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>The optional extra credit line is used to acknowledge I6 sources,
|
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>The optional extra credit line is used to acknowledge I6 sources,
|
||||||
collaborators, translators and so on.
|
collaborators, translators and so on.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -544,7 +626,7 @@ collaborators, translators and so on.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Extension extra credit: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">extra_credit_as_lexed</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Extension extra credit: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">extra_credit_as_lexed</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>The use option "authorial modesty" is unusual in applying to the extension
|
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>The use option "authorial modesty" is unusual in applying to the extension
|
||||||
it is found in, not the whole source text. When we read it, we call one of
|
it is found in, not the whole source text. When we read it, we call one of
|
||||||
the following routines, depending on whether it was in an extension or in
|
the following routines, depending on whether it was in an extension or in
|
||||||
the main source text:
|
the main source text:
|
||||||
|
@ -560,21 +642,21 @@ the main source text:
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">general_authorial_modesty</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">general_authorial_modesty</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>The inclusion sentence for an extension is where it was Included in a
|
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>The inclusion sentence for an extension is where it was Included in a
|
||||||
project's syntax tree (if it was). It isn't used in compilation, only for
|
project's syntax tree (if it was). It isn't used in compilation, only for
|
||||||
problem messages and the index.
|
problem messages and the index.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_inclusion_sentence</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_inclusion_sentence</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::set_inclusion_sentence</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Extensions::set_inclusion_sentence</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::get_inclusion_sentence</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_inclusion_sentence</span></span>:<br/>Project Services - <a href="5-ps2.html#SP26">§26</a><br/>Inclusions - <a href="6-inc.html#SP5_1_1">§5.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::get_inclusion_sentence</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_inclusion_sentence</span></span>:<br/>Project Services - <a href="5-ps2.html#SP26">§26</a><br/>Inclusions - <a href="6-inc.html#SP5_1_1">§5.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">inclusion_sentence</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>An extension is "standard" if it's either the Standard Rules or Basic Inform.
|
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>An extension is "standard" if it's either the Standard Rules or Basic Inform.
|
||||||
(This affects indexing and crediting.)
|
(This affects indexing and crediting.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -584,25 +666,25 @@ problem messages and the index.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">standard</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">standard</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. Version requirements. </b>When it's known that an extension must satisfy a given version requirement —
|
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. Version requirements. </b>When it's known that an extension must satisfy a given version requirement —
|
||||||
say, being version 7.2.1 or better — the following is called. Note that
|
say, being version 7.2.1 or better — the following is called. Note that
|
||||||
if incompatible requirements are placed on it, the range in <span class="extract"><span class="extract-syntax">E->must_satisfy</span></span>
|
if incompatible requirements are placed on it, the range in <span class="extract"><span class="extract-syntax">E->must_satisfy</span></span>
|
||||||
becomes empty and stays that way.
|
becomes empty and stays that way.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::must_satisfy</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Extensions::must_satisfy</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::must_satisfy</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Extensions::must_satisfy</span></span>:<br/>Inclusions - <a href="6-inc.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</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">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">must_satisfy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">req</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">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">must_satisfy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">req</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">VersionNumberRanges::intersect_range</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax">-></span><span class="element-syntax">version_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">-></span><span class="element-syntax">version_range</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">VersionNumberRanges::intersect_range</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax">-></span><span class="element-syntax">version_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">-></span><span class="element-syntax">version_range</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>And it is certainly possible, if an extension is loaded for multiple
|
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b>And it is certainly possible, if an extension is loaded for multiple
|
||||||
reasons with different versioning needs, that the extension no longer meets
|
reasons with different versioning needs, that the extension no longer meets
|
||||||
its requirements (even though it did when first loaded). This tests for that:
|
its requirements (even though it did when first loaded). This tests for that:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::satisfies</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Extensions::satisfies</span></span>:<br/>Project Services - <a href="5-ps2.html#SP26">§26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::satisfies</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Extensions::satisfies</span></span>:<br/>Project Services - <a href="5-ps2.html#SP26">§26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">must_satisfy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
|
@ -212,7 +212,7 @@ include the Materials folder for any relevant project.
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list_for_Preform_callback</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list_for_Preform_callback</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::read_Preform_definition</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Languages::read_Preform_definition</span></span>:<br/>Extension Services - <a href="5-es.html#SP6">§6</a><br/>Project Services - <a href="5-ps2.html#SP27">§27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::read_Preform_definition</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Languages::read_Preform_definition</span></span>:<br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP27">§27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</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 language"</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">L</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 language"</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">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">Preform_loaded</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">Preform_loaded</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">Preform_loaded</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">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">Preform_loaded</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||||
|
@ -235,7 +235,7 @@ include the Materials folder for any relevant project.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::find_for</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Languages::find_for</span></span>:<br/><a href="5-ls.html#SP9">§9</a><br/>Extension Services - <a href="5-es.html#SP6">§6</a><br/>Project Services - <a href="5-ps2.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::find_for</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Languages::find_for</span></span>:<br/><a href="5-ls.html#SP9">§9</a><br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> =</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> =</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</span><span class="plain-syntax">);</span>
|
||||||
|
|
|
@ -815,10 +815,10 @@ each extension against the intersection of all requirements put on it:
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::check_extension_versions_d</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::check_extension_versions_d</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</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">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_genre</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">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">)) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-es.html#SP15" class="function-link"><span class="function-syntax">Extensions::satisfies</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</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">if</span><span class="plain-syntax"> (</span><a href="5-es.html#SP16" class="function-link"><span class="function-syntax">Extensions::satisfies</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</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">copy_error</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CE</span><span class="plain-syntax"> = </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_T</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNTAX_CE</span><span class="plain-syntax">, </span><span class="constant-syntax">ExtVersionTooLow_SYNERROR</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CE</span><span class="plain-syntax"> = </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_T</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNTAX_CE</span><span class="plain-syntax">, </span><span class="constant-syntax">ExtVersionTooLow_SYNERROR</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"two incompatible versions"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"two incompatible versions"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-ce.html#SP3" class="function-link"><span class="function-syntax">CopyErrors::supply_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CE</span><span class="plain-syntax">, </span><a href="5-es.html#SP12" class="function-link"><span class="function-syntax">Extensions::get_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="2-ce.html#SP3" class="function-link"><span class="function-syntax">CopyErrors::supply_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CE</span><span class="plain-syntax">, </span><a href="5-es.html#SP13" class="function-link"><span class="function-syntax">Extensions::get_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">CE</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">CE</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
|
|
|
@ -472,7 +472,6 @@ allowed; they should probably be withdrawn.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TW</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">exft</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TW</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">exfa</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</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">exfa</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">work_identified</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">work_identified</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work_identified</span><span class="plain-syntax">, </span><span class="constant-syntax">USEWITH_WDBC</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">exft</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">exft</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -701,7 +700,7 @@ file and a line number of at least 1).
|
||||||
|
|
||||||
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Headings::get_extension_containing</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Headings::get_extension_containing</span></span>:<br/><a href="6-hdn.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Headings::get_extension_containing</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Headings::get_extension_containing</span></span>:<br/><a href="6-hdn.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</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">h</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-></span><span class="element-syntax">start_location</span><span class="plain-syntax">.</span><span class="identifier-syntax">file_of_origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">h</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-></span><span class="element-syntax">start_location</span><span class="plain-syntax">.</span><span class="identifier-syntax">file_of_origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::corresponding_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">-></span><span class="element-syntax">start_location</span><span class="plain-syntax">.</span><span class="identifier-syntax">file_of_origin</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP8" class="function-link"><span class="function-syntax">Extensions::corresponding_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">-></span><span class="element-syntax">start_location</span><span class="plain-syntax">.</span><span class="identifier-syntax">file_of_origin</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. </b>Although Implied (0) headings do have text, contrary to the implication of
|
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. </b>Although Implied (0) headings do have text, contrary to the implication of
|
||||||
|
|
|
@ -84,7 +84,7 @@ read twice.
|
||||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusions_for_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inclusions_for_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inclusions::traverse</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inclusions::traverse</span></span>:<br/>Extension Services - <a href="5-es.html#SP5">§5</a><br/>Project Services - <a href="5-ps2.html#SP27_4">§27.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inclusions::traverse</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inclusions::traverse</span></span>:<br/>Extension Services - <a href="5-es.html#SP6">§6</a><br/>Project Services - <a href="5-ps2.html#SP27_4">§27.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</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">no_copy_errors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">errors_reading_source_text</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">no_copy_errors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||||
|
@ -225,7 +225,6 @@ parse tree.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</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">exft</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</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">exfa</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</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">exfa</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">exft</span><span class="plain-syntax">, </span><span class="identifier-syntax">exfa</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">LOADED_WDBC</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumbers::null</span><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumbers::null</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">version_word</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="6-inc.html#SP6" class="function-link"><span class="function-syntax">Inclusions::parse_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">version_word</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">version_word</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="6-inc.html#SP6" class="function-link"><span class="function-syntax">Inclusions::parse_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">version_word</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">semver_range</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumberRanges::compatibility_range</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">semver_range</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VersionNumberRanges::compatibility_range</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||||
|
@ -257,7 +256,7 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">)) &&</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">)) &&</span>
|
||||||
<span class="plain-syntax"> (</span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::source_text_has_been_read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">))) {</span>
|
<span class="plain-syntax"> (</span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::source_text_has_been_read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">))) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-es.html#SP14" class="function-link"><span class="function-syntax">Extensions::must_satisfy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="5-es.html#SP15" class="function-link"><span class="function-syntax">Extensions::must_satisfy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</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">E</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">E</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Read the extension file into the lexer, and break it into body and documentation</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Read the extension file into the lexer, and break it into body and documentation</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||||
|
@ -274,8 +273,8 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
|
||||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP5" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP5" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</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">search_result</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">search_result</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-es.html#SP12" class="function-link"><span class="function-syntax">Extensions::set_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="5-es.html#SP13" class="function-link"><span class="function-syntax">Extensions::set_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::set_associated_project</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">for_project</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::set_associated_project</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">for_project</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">nest</span><span class="plain-syntax">) == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">nest</span><span class="plain-syntax">) == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">loaded_from_built_in_area</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">loaded_from_built_in_area</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">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">compatibility</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">compatibility</span><span class="plain-syntax">;</span>
|
||||||
|
@ -309,7 +308,7 @@ report this problem at the inclusion line.
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CE</span><span class="plain-syntax"> = </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_T</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNTAX_CE</span><span class="plain-syntax">, </span><span class="constant-syntax">ExtInadequateVM_SYNERROR</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">parsed_from</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CE</span><span class="plain-syntax"> = </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_T</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNTAX_CE</span><span class="plain-syntax">, </span><span class="constant-syntax">ExtInadequateVM_SYNERROR</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">parsed_from</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-ce.html#SP3" class="function-link"><span class="function-syntax">CopyErrors::supply_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CE</span><span class="plain-syntax">, </span><a href="5-es.html#SP12" class="function-link"><span class="function-syntax">Extensions::get_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><a href="2-ce.html#SP3" class="function-link"><span class="function-syntax">CopyErrors::supply_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CE</span><span class="plain-syntax">, </span><a href="5-es.html#SP13" class="function-link"><span class="function-syntax">Extensions::get_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">CE</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inclusions_errors_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">CE</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="6-inc.html#SP5_1">§5.1</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="6-inc.html#SP5_1">§5.1</a>.</li></ul>
|
||||||
|
|
|
@ -105,7 +105,7 @@ perhaps combining our feed with that of others.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="function-syntax">SourceText::read_file</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SourceText::read_file</span></span>:<br/>Extension Services - <a href="5-es.html#SP6">§6</a><br/>Project Services - <a href="5-ps2.html#SP27_2">§27.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">synopsis</span><span class="plain-syntax">,</span>
|
<span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="function-syntax">SourceText::read_file</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SourceText::read_file</span></span>:<br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP27_2">§27.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">synopsis</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">documentation_only</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">primary</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">documentation_only</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">primary</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">currently_lexing_into</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">currently_lexing_into</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||||
|
|
|
@ -135,7 +135,7 @@ since the <a href="2-nst.html#SP5" class="internal">inbuild_search_result</a> fo
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionCensus::ecd_rubric</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">ExtensionCensus::ecd_rubric</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a>, <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionCensus::ecd_rubric</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">ExtensionCensus::ecd_rubric</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a>, <a href="7-ip.html#SP1_2_2_1_6_4_4">§1.2.2.1.6.4.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP9" class="function-link"><span class="function-syntax">Extensions::get_rubric</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP10" class="function-link"><span class="function-syntax">Extensions::get_rubric</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">));</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::installation_region</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::installation_region</span></span>:<br/><a href="7-cns.html#SP6">§6</a><br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_2">§1.2.2.1.6.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::installation_region</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::installation_region</span></span>:<br/><a href="7-cns.html#SP6">§6</a><br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_2">§1.2.2.1.6.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
||||||
|
@ -146,11 +146,8 @@ since the <a href="2-nst.html#SP5" class="internal">inbuild_search_result</a> fo
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::ecd_used</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::ecd_used</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_2_1">§1.2.2.1.6.2.1</a>, <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::ecd_used</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::ecd_used</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_6_2_1">§1.2.2.1.6.2.1</a>, <a href="7-ip.html#SP1_2_2_1_6_4_1">§1.2.2.1.6.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-wrk.html#SP13" class="function-link"><span class="function-syntax">Works::no_times_used_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">LOADED_WDBC</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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">E</span><span class="plain-syntax">-></span><span class="element-syntax">has_historically_been_used</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> (</span><a href="2-wrk.html#SP13" class="function-link"><span class="function-syntax">Works::no_times_used_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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">TRUE</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>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>The following give some sorting criteria, and are functions fit to be
|
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>The following give some sorting criteria, and are functions fit to be
|
||||||
|
@ -161,44 +158,44 @@ handed to <span class="extract"><span class="extract-syntax">qsort</span></span>
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_title</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_title</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_title</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_title</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare_by_title</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work1</span><span class="plain-syntax">, </span><span class="identifier-syntax">work2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_title</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">, </span><span class="identifier-syntax">E1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_author</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_author</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_author</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_author</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work1</span><span class="plain-syntax">, </span><span class="identifier-syntax">work2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_author</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E2</span><span class="plain-syntax">, </span><span class="identifier-syntax">E1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_installation</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_installation</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_installation</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_installation</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">d</span><span class="plain-syntax"> = </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::installation_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</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">d</span><span class="plain-syntax"> = </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::installation_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">) -</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::installation_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::installation_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare_by_title</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work1</span><span class="plain-syntax">, </span><span class="identifier-syntax">work2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_edition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_date</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_date</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_date</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_date</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare_by_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work1</span><span class="plain-syntax">, </span><span class="identifier-syntax">work2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_length</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_length</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionCensus::compare_ecd_by_length</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">ExtensionCensus::compare_ecd_by_length</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2_1_5">§1.2.2.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd1</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ecd2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e1</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">e2</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare_by_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work1</span><span class="plain-syntax">, </span><span class="identifier-syntax">work2</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::compare_by_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E1</span><span class="plain-syntax">, </span><span class="identifier-syntax">E2</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. Performing the census. </b>For some reason a census often makes a good story (cf. Luke 2:1-5), but here
|
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. Performing the census. </b>For some reason a census often makes a good story (cf. Luke 2:1-5), but here
|
||||||
|
@ -255,7 +252,6 @@ truncate it.
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ecd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_census_datum</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTALLED_WDBC</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">overriding_a_built_in_extension</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">overriding_a_built_in_extension</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
|
@ -80,7 +80,7 @@ MathJax = {
|
||||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#7">Chapter 7: Extension Indexing</a></li><li><b>Dictionary</b></li></ul></div>
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#7">Chapter 7: Extension Indexing</a></li><li><b>Dictionary</b></li></ul></div>
|
||||||
<p class="purpose">To maintain a database of names and constructions in all extensions so far used by this installation of Inform, and spot potential namespace clashes.</p>
|
<p class="purpose">To maintain a database of names and constructions in all extensions so far used by this installation of Inform, and spot potential namespace clashes.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="7-dct.html#SP1">§1. The dictionary file</a></li><li><a href="7-dct.html#SP3">§3. Storage in memory</a></li><li><a href="7-dct.html#SP8">§8. Reading in</a></li><li><a href="7-dct.html#SP10">§10. Writing out</a></li><li><a href="7-dct.html#SP11">§11. Erasing entries</a></li><li><a href="7-dct.html#SP13">§13. Sorting the extension dictionary</a></li><li><a href="7-dct.html#SP15">§15. Writing the HTML extension index</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="7-dct.html#SP1">§1. The dictionary file</a></li><li><a href="7-dct.html#SP3">§3. Storage in memory</a></li><li><a href="7-dct.html#SP8">§8. Reading in</a></li><li><a href="7-dct.html#SP10">§10. Writing out</a></li><li><a href="7-dct.html#SP11">§11. Erasing entries</a></li><li><a href="7-dct.html#SP12">§12. Sorting the extension dictionary</a></li><li><a href="7-dct.html#SP14">§14. Writing the HTML extension index</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. The dictionary file. </b>Each time an extension is successfully used, a dictionary of items defined in
|
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. The dictionary file. </b>Each time an extension is successfully used, a dictionary of items defined in
|
||||||
the user's extensions is updated: this is used to generate the dynamic
|
the user's extensions is updated: this is used to generate the dynamic
|
||||||
|
@ -140,6 +140,7 @@ record marked "to be erased" will not be saved back to the file in due course.
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> {</span>
|
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> {</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede_extension</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede_work</span><span class="plain-syntax">; </span><span class="comment-syntax"> author name and title, with hash code</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede_work</span><span class="plain-syntax">; </span><span class="comment-syntax"> author name and title, with hash code</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> text of the dictionary entry</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> text of the dictionary entry</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type</span><span class="plain-syntax">; </span><span class="comment-syntax"> grammatical category, such as "kind"</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type</span><span class="plain-syntax">; </span><span class="comment-syntax"> grammatical category, such as "kind"</span>
|
||||||
|
@ -153,16 +154,18 @@ record marked "to be erased" will not be saved back to the file in due course.
|
||||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b></p>
|
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b></p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::new_ede</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::new_ede</span></span>:<br/><a href="7-dct.html#SP5">§5</a>, <a href="7-dct.html#SP6">§6</a>, <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">category</span><span class="plain-syntax">,</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::new_ede</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::new_ede</span></span>:<br/><a href="7-dct.html#SP5">§5</a>, <a href="7-dct.html#SP6">§6</a>, <a href="7-dct.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">category</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">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">headword</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">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">headword</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">E</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 E for EDE"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_extension</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::add_to_database</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">, </span><span class="constant-syntax">DICTIONARY_REFERRED_WDBC</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</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_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"indexing"</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_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"indexing"</span><span class="plain-syntax">))</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Change the sort and usage dates, and word count, for the extension work</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Change the sort and usage dates, and word count, for the extension work</span><span class="named-paragraph-number">4.1</span></a></span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">has_historically_been_used</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">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
||||||
|
@ -194,9 +197,9 @@ the extension:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sdate</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::set_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">, </span><span class="identifier-syntax">sdate</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sdate</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::set_sort_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">sdate</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">wc</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::set_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">, </span><span class="identifier-syntax">wc</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">wc</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::set_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">wc</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">udate</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::set_usage_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">, </span><span class="identifier-syntax">udate</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">udate</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::set_usage_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">udate</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">sdate</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">sdate</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">udate</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">udate</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -219,7 +222,7 @@ variable created by <a href="../../../inweb/docs/foundation-module/index.html" c
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ascday</span><span class="plain-syntax">[</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_wday</span><span class="plain-syntax">], </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_mday</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ascday</span><span class="plain-syntax">[</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_wday</span><span class="plain-syntax">], </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_mday</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ascmon</span><span class="plain-syntax">[</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_mon</span><span class="plain-syntax">], </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_year</span><span class="plain-syntax">+1900,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ascmon</span><span class="plain-syntax">[</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_mon</span><span class="plain-syntax">], </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_year</span><span class="plain-syntax">+1900,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_hour</span><span class="plain-syntax">, </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_min</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_hour</span><span class="plain-syntax">, </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-></span><span class="identifier-syntax">tm_min</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"indexing"</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"indexing"</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">dbuff</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">dbuff</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">dbuff</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">dbuff</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
@ -240,7 +243,7 @@ variable created by <a href="../../../inweb/docs/foundation-module/index.html" c
|
||||||
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::new_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">category</span><span class="plain-syntax">,</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::new_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">category</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">headword</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">headword</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">category</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
|
@ -307,18 +310,20 @@ days when overlong records were truncated.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">strokes</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">pos</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">strokes</span><span class="plain-syntax"> <= </span><span class="constant-syntax">4</span><span class="plain-syntax">; </span><span class="identifier-syntax">pos</span><span class="plain-syntax">++) {</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</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">strokes</span><span class="plain-syntax">, </span><span class="identifier-syntax">pos</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">strokes</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">pos</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">strokes</span><span class="plain-syntax"> <= </span><span class="constant-syntax">5</span><span class="plain-syntax">; </span><span class="identifier-syntax">pos</span><span class="plain-syntax">++) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">line_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pos</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">line_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pos</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">c</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</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">c</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</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">c</span><span class="plain-syntax"> == </span><span class="character-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">c</span><span class="plain-syntax"> == </span><span class="character-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">strokes</span><span class="plain-syntax"> == </span><span class="constant-syntax">5</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">strokes</span><span class="plain-syntax"> < </span><span class="constant-syntax">5</span><span class="plain-syntax">) </span><span class="identifier-syntax">strokes</span><span class="plain-syntax">++;</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</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="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">strokes</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">strokes</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span><span class="plain-syntax">: </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
|
@ -326,6 +331,21 @@ days when overlong records were truncated.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">category</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> =</span>
|
||||||
|
<span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">));</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> =</span>
|
||||||
|
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><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">R</span><span class="plain-syntax">) </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">),</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</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">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP5" class="function-link"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">C</span><span class="plain-syntax">) </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">),</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Hapless! on %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line_entry</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. Writing out. </b>And inversely... Note that erased records are not written.
|
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. Writing out. </b>And inversely... Note that erased records are not written.
|
||||||
|
@ -351,9 +371,9 @@ days when overlong records were truncated.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="reserved-syntax">extension_dictionary_entry</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">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Writing $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Writing $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</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">DICTF</span><span class="plain-syntax">, </span><span class="string-syntax">"|%S|%S|%S|%S|\n"</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">DICTF</span><span class="plain-syntax">, </span><span class="string-syntax">"|%S|%S|%S|%S|%f\n"</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">-></span><span class="element-syntax">author_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_extension</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Suppressing $d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Suppressing $d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Finished writing dictionary file\n"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Finished writing dictionary file\n"</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -363,29 +383,9 @@ dictionary file, and effectively that takes it out of the dictionary for
|
||||||
subsequent runs of Inform.
|
subsequent runs of Inform.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary">The following functions are for the two reasons to mark records in this way:
|
<p class="commentary">This arises when we are making the dictionary entries for an extension which
|
||||||
first, when an extension has, accordingly to the census, been uninstalled,
|
was used on the current run. Before making new entries, we erase all entries
|
||||||
we remove its dictionary entries.
|
left over from some previous usage of it: it may, after all, have changed.
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::erase_entries_of_uninstalled_extensions</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::erase_entries_of_uninstalled_extensions</span></span>:<br/><a href="7-dct.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">,</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="string-syntax">"Erasure of dictionary entries for uninstalled extensions\n"</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="reserved-syntax">extension_dictionary_entry</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">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
|
||||||
<span class="plain-syntax"> (</span><a href="2-wrk.html#SP13" class="function-link"><span class="function-syntax">Works::no_times_used_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTALLED_WDBC</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Erased $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax"> }</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Done\n"</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
|
||||||
</pre>
|
|
||||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>The second reason arises when we are making the dictionary entries for an
|
|
||||||
extension which was used on the current run. Before making new entries, we
|
|
||||||
erase all entries left over from some previous usage of it: it may, after all,
|
|
||||||
have changed.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -402,7 +402,7 @@ have changed.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Done\n"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Done\n"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. Sorting the extension dictionary. </b>This function returns the number of (unerased) entries in the dictionary,
|
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. Sorting the extension dictionary. </b>This function returns the number of (unerased) entries in the dictionary,
|
||||||
and on its exit the (unerased) entries each occur once in alphabetical
|
and on its exit the (unerased) entries each occur once in alphabetical
|
||||||
order in the linked list beginning at <span class="extract"><span class="extract-syntax">first_in_sorted_dictionary</span></span>.
|
order in the linked list beginning at <span class="extract"><span class="extract-syntax">first_in_sorted_dictionary</span></span>.
|
||||||
If two entries have identical headwords, the earliest created is the
|
If two entries have identical headwords, the earliest created is the
|
||||||
|
@ -418,21 +418,21 @@ as high as 10,000.
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
|
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span></span>:<br/><a href="7-dct.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span></span>:<br/><a href="7-dct.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Beginning dictionary sort\n"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Beginning dictionary sort\n"</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">no_entries</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</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">no_entries</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP13_1" class="named-paragraph-link"><span class="named-paragraph">Count headwords and reprocess their texts for dictionary sorting</span><span class="named-paragraph-number">13.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Count headwords and reprocess their texts for dictionary sorting</span><span class="named-paragraph-number">12.1</span></a></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">no_entries</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</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><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax"> =</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax"> =</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *), </span><span class="constant-syntax">EXTENSION_DICTIONARY_MREASON</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *), </span><span class="constant-syntax">EXTENSION_DICTIONARY_MREASON</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP13_2" class="named-paragraph-link"><span class="named-paragraph">Fill the array with pointers to the EDEs</span><span class="named-paragraph-number">13.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP12_2" class="named-paragraph-link"><span class="named-paragraph">Fill the array with pointers to the EDEs</span><span class="named-paragraph-number">12.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">qsort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">, (</span><span class="identifier-syntax">size_t</span><span class="plain-syntax">) </span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">qsort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">, (</span><span class="identifier-syntax">size_t</span><span class="plain-syntax">) </span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *),</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *),</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP14" class="function-link"><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span></a><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP13" class="function-link"><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span></a><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP13_3" class="named-paragraph-link"><span class="named-paragraph">String the sorted array together into a sorted linked list of EDEs</span><span class="named-paragraph-number">13.3</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP12_3" class="named-paragraph-link"><span class="named-paragraph">String the sorted array together into a sorted linked list of EDEs</span><span class="named-paragraph-number">12.3</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::I7_array_free</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTENSION_DICTIONARY_MREASON</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::I7_array_free</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTENSION_DICTIONARY_MREASON</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *));</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *));</span>
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ as high as 10,000.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_entries</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">no_entries</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP13_1"></a><b>§13.1. </b>Dictionary entries must be in mixed case: we might have both "green" the
|
<p class="commentary firstcommentary"><a id="SP12_1"></a><b>§12.1. </b>Dictionary entries must be in mixed case: we might have both "green" the
|
||||||
colour and "Green" the kind of person (an environmental activist), say.
|
colour and "Green" the kind of person (an environmental activist), say.
|
||||||
But we want to compare them with <span class="extract"><span class="extract-syntax">strcmp</span></span>, which is much faster than its
|
But we want to compare them with <span class="extract"><span class="extract-syntax">strcmp</span></span>, which is much faster than its
|
||||||
case-insensitive analogue. So we trade memory for speed and store a modified
|
case-insensitive analogue. So we trade memory for speed and store a modified
|
||||||
|
@ -460,7 +460,7 @@ predictable — implementations of Quicksort do not otherwise guarantee this
|
||||||
since implementations have the freedom to sort unstably in different ways.
|
since implementations have the freedom to sort unstably in different ways.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Count headwords and reprocess their texts for dictionary sorting</span><span class="named-paragraph-number">13.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Count headwords and reprocess their texts for dictionary sorting</span><span class="named-paragraph-number">12.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -477,11 +477,11 @@ since implementations have the freedom to sort unstably in different ways.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Sorted under '%S': $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Sorted under '%S': $d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP13">§13</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP12">§12</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP13_2"></a><b>§13.2. </b>We unbundle the linked list of EDEs in creation order:
|
<p class="commentary firstcommentary"><a id="SP12_2"></a><b>§12.2. </b>We unbundle the linked list of EDEs in creation order:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Fill the array with pointers to the EDEs</span><span class="named-paragraph-number">13.2</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Fill the array with pointers to the EDEs</span><span class="named-paragraph-number">12.2</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -491,11 +491,11 @@ since implementations have the freedom to sort unstably in different ways.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">erased</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP13">§13</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP12">§12</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP13_3"></a><b>§13.3. </b>We then use the sorted version of the same array to reorder the EDEs:
|
<p class="commentary firstcommentary"><a id="SP12_3"></a><b>§12.3. </b>We then use the sorted version of the same array to reorder the EDEs:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">String the sorted array together into a sorted linked list of EDEs</span><span class="named-paragraph-number">13.3</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">String the sorted array together into a sorted linked list of EDEs</span><span class="named-paragraph-number">12.3</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -506,13 +506,13 @@ since implementations have the freedom to sort unstably in different ways.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</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">no_entries</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">-1]-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">sorted_extension_dictionary</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_entries</span><span class="plain-syntax">-1]-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP13">§13</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP12">§12</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>As always with <span class="extract"><span class="extract-syntax">qsort</span></span>, there's a palaver about the types used for the
|
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>As always with <span class="extract"><span class="extract-syntax">qsort</span></span>, there's a palaver about the types used for the
|
||||||
comparison function so that the result will compile without errors:
|
comparison function so that the result will compile without errors:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span></span>:<br/><a href="7-dct.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">elem1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">elem2</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::compare_ed_entries</span></span>:<br/><a href="7-dct.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">elem1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">elem2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">elem1</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">e1</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">elem1</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">elem2</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">elem2</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">e1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (*</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">e1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (*</span><span class="identifier-syntax">e2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||||
|
@ -520,32 +520,31 @@ comparison function so that the result will compile without errors:
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Str::cmp</span><span class="plain-syntax">((*</span><span class="identifier-syntax">e1</span><span class="plain-syntax">)-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, (*</span><span class="identifier-syntax">e2</span><span class="plain-syntax">)-></span><span class="element-syntax">sorting</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">Str::cmp</span><span class="plain-syntax">((*</span><span class="identifier-syntax">e1</span><span class="plain-syntax">)-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, (*</span><span class="identifier-syntax">e2</span><span class="plain-syntax">)-></span><span class="element-syntax">sorting</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. Writing the HTML extension index. </b>This is the index of terms, not the directory of extensions: it is, in
|
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. Writing the HTML extension index. </b>This is the index of terms, not the directory of extensions: it is, in
|
||||||
fact, the HTML rendering of the dictionary constructed above.
|
fact, the HTML rendering of the dictionary constructed above.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::write_to_HTML</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::write_to_HTML</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2">§1.2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::write_to_HTML</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::write_to_HTML</span></span>:<br/>Index Pages - <a href="7-ip.html#SP1_2_2">§1.2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">n</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">n</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP12" class="function-link"><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span></a><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">n</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</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">first_letter</span><span class="plain-syntax"> = </span><span class="character-syntax">'a'</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">first_letter</span><span class="plain-syntax"> = </span><span class="character-syntax">'a'</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, *</span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax">, *</span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP11" class="function-link"><span class="function-syntax">ExtensionDictionary::erase_entries_of_uninstalled_extensions</span></a><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> *</span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax">; </span><span class="identifier-syntax">ede</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP13" class="function-link"><span class="function-syntax">ExtensionDictionary::sort_extension_dictionary</span></a><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">n</span><span class="plain-syntax"> <= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">first_in_sorted_dictionary</span><span class="plain-syntax">; </span><span class="identifier-syntax">ede</span><span class="plain-syntax">;</span>
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</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_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"indexing"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</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_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"indexing"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</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">this_first</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::tolower</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</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">this_first</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::tolower</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">-></span><span class="element-syntax">entry_text</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">first_letter</span><span class="plain-syntax"> != </span><span class="identifier-syntax">this_first</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">first_letter</span><span class="plain-syntax"> != </span><span class="identifier-syntax">this_first</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">); </span><span class="identifier-syntax">first_letter</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_first</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">); </span><span class="identifier-syntax">first_letter</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_first</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Write extension dictionary entry for this headword</span><span class="named-paragraph-number">15.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Write extension dictionary entry for this headword</span><span class="named-paragraph-number">14.1</span></a></span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> }</span>
|
||||||
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP18" class="function-link"><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP19" class="function-link"><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP15_1"></a><b>§15.1. </b>A run of \(N\) words which are all the same should appear in tinted type
|
<p class="commentary firstcommentary"><a id="SP14_1"></a><b>§14.1. </b>A run of \(N\) words which are all the same should appear in tinted type
|
||||||
throughout, while \(N(N-1)/2\) clashes should be reported to the machinery for
|
throughout, while \(N(N-1)/2\) clashes should be reported to the machinery for
|
||||||
clashes given above: if we find definitions A, B, C, for instance, the clashes
|
clashes given above: if we find definitions A, B, C, for instance, the clashes
|
||||||
are reported as A vs B, A vs C, then B vs C. This has \(O(N^2)\) running time,
|
are reported as A vs B, A vs C, then B vs C. This has \(O(N^2)\) running time,
|
||||||
|
@ -555,7 +554,7 @@ to the word "frog", we would be in some trouble here. Let's take the risk.
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">) ((</span><span class="identifier-syntax">X</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">)))</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">) ((</span><span class="identifier-syntax">X</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">-></span><span class="element-syntax">sorting</span><span class="plain-syntax">)))</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write extension dictionary entry for this headword</span><span class="named-paragraph-number">15.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write extension dictionary entry for this headword</span><span class="named-paragraph-number">14.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -563,7 +562,7 @@ to the word "frog", we would be in some trouble here. Let's take the risk.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tint</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">previous_ede</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tint</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">)) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EDES_DEFINE_SAME_WORD</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">)) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tint</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">tint</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP18" class="function-link"><span class="function-syntax">ExtensionDictionary::extension_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP17" class="function-link"><span class="function-syntax">ExtensionDictionary::extension_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax"> = </span><span class="identifier-syntax">next_ede</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_sorted_dictionary</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"style='margin:0px; padding:0px;'"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"style='margin:0px; padding:0px;'"</span><span class="plain-syntax">);</span>
|
||||||
|
@ -576,8 +575,8 @@ to the word "frog", we would be in some trouble here. Let's take the risk.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP15">§15</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP14">§14</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b>So, then, "clashes". These occur if, say, two extensions define "chopper" as
|
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>So, then, "clashes". These occur if, say, two extensions define "chopper" as
|
||||||
a kind of vehicle (for instance, meaning a helicopter in one and a motorcycle
|
a kind of vehicle (for instance, meaning a helicopter in one and a motorcycle
|
||||||
in the other). This results in two dictionary entries under "chopper" and is
|
in the other). This results in two dictionary entries under "chopper" and is
|
||||||
recorded as a clash between them. Often, more will turn up: perhaps "chopper"
|
recorded as a clash between them. Often, more will turn up: perhaps "chopper"
|
||||||
|
@ -598,10 +597,10 @@ extension lexicographically earlier than the second (the right one).
|
||||||
<span class="plain-syntax">} </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax">} </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>The structure known_extension_clash is accessed in 6/hdn, 6/inc, 7/cns and here.</li></ul>
|
<ul class="endnotetexts"><li>The structure known_extension_clash is accessed in 6/hdn, 6/inc, 7/cns and here.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b></p>
|
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b></p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionDictionary::new_clash</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::new_clash</span></span>:<br/><a href="7-dct.html#SP18">§18</a>, <a href="7-dct.html#SP18_2">§18.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">,</span>
|
<span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionDictionary::new_clash</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::new_clash</span></span>:<br/><a href="7-dct.html#SP17">§17</a>, <a href="7-dct.html#SP17_2">§17.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first_known_flag</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first_known_flag</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">leftx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">leftx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
|
||||||
|
@ -612,7 +611,7 @@ extension lexicographically earlier than the second (the right one).
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">kec</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">kec</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b>Every clash of names arises from definitions made in a pair of EDEs,
|
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b>Every clash of names arises from definitions made in a pair of EDEs,
|
||||||
which we shall call left and right. Each distinct KEC ("known extension
|
which we shall call left and right. Each distinct KEC ("known extension
|
||||||
clash") represents a different pair of extensions which clash, one
|
clash") represents a different pair of extensions which clash, one
|
||||||
example of a name clashing between them, and a count of the number of
|
example of a name clashing between them, and a count of the number of
|
||||||
|
@ -664,7 +663,7 @@ not seem to have arisen from homonyms like "lead" (the substance) versus
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::extension_clash</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::extension_clash</span></span>:<br/><a href="7-dct.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">,</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::extension_clash</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::extension_clash</span></span>:<br/><a href="7-dct.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede2</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ede2</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_dictionary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leftx</span><span class="plain-syntax">, *</span><span class="identifier-syntax">rightx</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leftx</span><span class="plain-syntax">, *</span><span class="identifier-syntax">rightx</span><span class="plain-syntax">;</span>
|
||||||
|
@ -673,7 +672,7 @@ not seem to have arisen from homonyms like "lead" (the substance) versus
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">-></span><span class="identifier-syntax">ede_work</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede2</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">); </span><span class="comment-syntax"> compare source extensions</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP9" class="function-link"><span class="function-syntax">Works::compare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">-></span><span class="identifier-syntax">ede_work</span><span class="plain-syntax">, </span><span class="identifier-syntax">ede2</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">); </span><span class="comment-syntax"> compare source extensions</span>
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP18_1" class="named-paragraph-link"><span class="named-paragraph">Ignore apparent clashes which are in fact not troublesome</span><span class="named-paragraph-number">18.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Ignore apparent clashes which are in fact not troublesome</span><span class="named-paragraph-number">17.1</span></a></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">d</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede1</span><span class="plain-syntax">; </span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede2</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">d</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede1</span><span class="plain-syntax">; </span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede2</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">d</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede2</span><span class="plain-syntax">; </span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede1</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">d</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">left</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede2</span><span class="plain-syntax">; </span><span class="identifier-syntax">right</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ede1</span><span class="plain-syntax">; }</span>
|
||||||
|
@ -681,21 +680,21 @@ not seem to have arisen from homonyms like "lead" (the substance) versus
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">kec</span><span class="plain-syntax">, </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">kec</span><span class="plain-syntax">, </span><span class="reserved-syntax">known_extension_clash</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">first_known</span><span class="plain-syntax">) && (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leftx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">leftx</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">first_known</span><span class="plain-syntax">) && (</span><a href="2-wrk.html#SP8" class="function-link"><span class="function-syntax">Works::match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leftx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">leftx</span><span class="plain-syntax">-></span><span class="element-syntax">ede_work</span><span class="plain-syntax">))) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Search list of KECs deriving from the same left extension as this clash</span><span class="named-paragraph-number">18.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Search list of KECs deriving from the same left extension as this clash</span><span class="named-paragraph-number">17.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP17" class="function-link"><span class="function-syntax">ExtensionDictionary::new_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">right</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">kec</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP16" class="function-link"><span class="function-syntax">ExtensionDictionary::new_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP18_1"></a><b>§18.1. </b>If two name clashes occur in the same extension then, since we can presume
|
<p class="commentary firstcommentary"><a id="SP17_1"></a><b>§17.1. </b>If two name clashes occur in the same extension then, since we can presume
|
||||||
that this extension does actually work, the clash cannot cause problems.
|
that this extension does actually work, the clash cannot cause problems.
|
||||||
We also ignore a clash of a property name against some other form of name,
|
We also ignore a clash of a property name against some other form of name,
|
||||||
because these occur quite often and cause little difficulty in practice: so
|
because these occur quite often and cause little difficulty in practice: so
|
||||||
they would only clutter up the dictionary with spurious warnings.
|
they would only clutter up the dictionary with spurious warnings.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Ignore apparent clashes which are in fact not troublesome</span><span class="named-paragraph-number">18.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Ignore apparent clashes which are in fact not troublesome</span><span class="named-paragraph-number">17.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -705,8 +704,8 @@ they would only clutter up the dictionary with spurious warnings.
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"property"</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede1</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"property"</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede2</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"property"</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ede2</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"property"</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP18">§18</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP17">§17</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP18_2"></a><b>§18.2. </b>If we can find the righthand extension on the righthand side of any KEC
|
<p class="commentary firstcommentary"><a id="SP17_2"></a><b>§17.2. </b>If we can find the righthand extension on the righthand side of any KEC
|
||||||
in the list, then the clash is not a new one: we simply increment the number
|
in the list, then the clash is not a new one: we simply increment the number
|
||||||
of definition pairs clashing between the left and right extensions, and
|
of definition pairs clashing between the left and right extensions, and
|
||||||
return. (Thus forgetting what the actual definitions causing the present
|
return. (Thus forgetting what the actual definitions causing the present
|
||||||
|
@ -715,7 +714,7 @@ definitions clashing between the two.) But if we can't find righthand
|
||||||
extension anywhere in the list, we must add the new pair of definitions:
|
extension anywhere in the list, we must add the new pair of definitions:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Search list of KECs deriving from the same left extension as this clash</span><span class="named-paragraph-number">18.2</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Search list of KECs deriving from the same left extension as this clash</span><span class="named-paragraph-number">17.2</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -724,32 +723,32 @@ extension anywhere in the list, we must add the new pair of definitions:
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">number_clashes</span><span class="plain-syntax">++; </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">number_clashes</span><span class="plain-syntax">++; </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP17" class="function-link"><span class="function-syntax">ExtensionDictionary::new_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><a href="7-dct.html#SP16" class="function-link"><span class="function-syntax">ExtensionDictionary::new_clash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">right</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">return</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">kec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kec</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP18">§18</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP17">§17</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. </b>The above arrangement was designed to make it easy to print out the
|
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b>The above arrangement was designed to make it easy to print out the
|
||||||
clashes in a concise, human-readable way, which is what we now do.
|
clashes in a concise, human-readable way, which is what we now do.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span></span>:<br/><a href="7-dct.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::list_known_extension_clashes</span></span>:<br/><a href="7-dct.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kec</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kec</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">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP19_1" class="named-paragraph-link"><span class="named-paragraph">Write the headnote about what extension clashes mean</span><span class="named-paragraph-number">19.1</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP18_1" class="named-paragraph-link"><span class="named-paragraph">Write the headnote about what extension clashes mean</span><span class="named-paragraph-number">18.1</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">kec</span><span class="plain-syntax">, </span><span class="reserved-syntax">known_extension_clash</span><span class="plain-syntax">)</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">kec</span><span class="plain-syntax">, </span><span class="reserved-syntax">known_extension_clash</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">first_known</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">kec</span><span class="plain-syntax">-></span><span class="element-syntax">first_known</span><span class="plain-syntax">)</span>
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP19_2" class="named-paragraph-link"><span class="named-paragraph">Write a paragraph about extensions clashing with the lefthand one here</span><span class="named-paragraph-number">19.2</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dct.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Write a paragraph about extensions clashing with the lefthand one here</span><span class="named-paragraph-number">18.2</span></a></span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP19_1"></a><b>§19.1. </b>Not the end of the world! Extension clashes are not an error condition: they
|
<p class="commentary firstcommentary"><a id="SP18_1"></a><b>§18.1. </b>Not the end of the world! Extension clashes are not an error condition: they
|
||||||
are, if anything, a sign of life and activity.
|
are, if anything, a sign of life and activity.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the headnote about what extension clashes mean</span><span class="named-paragraph-number">19.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the headnote about what extension clashes mean</span><span class="named-paragraph-number">18.1</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -763,8 +762,8 @@ are, if anything, a sign of life and activity.
|
||||||
<span class="plain-syntax"> </span><span class="string-syntax">"clashes."</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="string-syntax">"clashes."</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP19">§19</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP18">§18</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP19_2"></a><b>§19.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write a paragraph about extensions clashing with the lefthand one here</span><span class="named-paragraph-number">19.2</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary firstcommentary"><a id="SP18_2"></a><b>§18.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write a paragraph about extensions clashing with the lefthand one here</span><span class="named-paragraph-number">18.2</span></span><span class="comment-syntax"> =</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
@ -787,7 +786,7 @@ are, if anything, a sign of life and activity.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</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">"\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">"\n"</span><span class="plain-syntax">);</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP19">§19</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-dct.html#SP18">§18</a>.</li></ul>
|
||||||
<nav role="progress"><div class="progresscontainer">
|
<nav role="progress"><div class="progresscontainer">
|
||||||
<ul class="progressbar"><li class="progressprev"><a href="7-tm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-sm.html">1</a></li><li class="progresschapter"><a href="2-gnr.html">2</a></li><li class="progresschapter"><a href="3-bg.html">3</a></li><li class="progresschapter"><a href="4-em.html">4</a></li><li class="progresschapter"><a href="5-es.html">5</a></li><li class="progresschapter"><a href="6-st.html">6</a></li><li class="progresscurrentchapter">7</li><li class="progresssection"><a href="7-tm.html">tm</a></li><li class="progresscurrent">dct</li><li class="progresssection"><a href="7-cns.html">cns</a></li><li class="progresssection"><a href="7-ip.html">ip</a></li><li class="progresssection"><a href="7-ip2.html">ip2</a></li><li class="progressnext"><a href="7-cns.html">❯</a></li></ul></div>
|
<ul class="progressbar"><li class="progressprev"><a href="7-tm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-sm.html">1</a></li><li class="progresschapter"><a href="2-gnr.html">2</a></li><li class="progresschapter"><a href="3-bg.html">3</a></li><li class="progresschapter"><a href="4-em.html">4</a></li><li class="progresschapter"><a href="5-es.html">5</a></li><li class="progresschapter"><a href="6-st.html">6</a></li><li class="progresscurrentchapter">7</li><li class="progresssection"><a href="7-tm.html">tm</a></li><li class="progresscurrent">dct</li><li class="progresssection"><a href="7-cns.html">cns</a></li><li class="progresssection"><a href="7-ip.html">ip</a></li><li class="progresssection"><a href="7-ip2.html">ip2</a></li><li class="progressnext"><a href="7-cns.html">❯</a></li></ul></div>
|
||||||
</nav><!--End of weave-->
|
</nav><!--End of weave-->
|
||||||
|
|
|
@ -152,13 +152,13 @@ function togglePopup(material_id) {
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">HOME_EXTPAGE:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ip.html#SP1_2_2_1" class="named-paragraph-link"><span class="named-paragraph">Display an alphabetised directory</span><span class="named-paragraph-number">1.2.2.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">HOME_EXTPAGE:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ip.html#SP1_2_2_1" class="named-paragraph-link"><span class="named-paragraph">Display an alphabetised directory</span><span class="named-paragraph-number">1.2.2.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INDEX_EXTPAGE:</span><span class="plain-syntax"> </span><a href="7-dct.html#SP15" class="function-link"><span class="function-syntax">ExtensionDictionary::write_to_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INDEX_EXTPAGE:</span><span class="plain-syntax"> </span><a href="7-dct.html#SP14" class="function-link"><span class="function-syntax">ExtensionDictionary::write_to_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-ip.html#SP1_2">§1.2</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-ip.html#SP1_2">§1.2</a>.</li></ul>
|
||||||
<p class="commentary firstcommentary"><a id="SP1_2_1_1"></a><b>§1.2.1.1. </b>From here on, then, all the code in this section generates the main directory
|
<p class="commentary firstcommentary"><a id="SP1_2_1_1"></a><b>§1.2.1.1. </b>From here on, then, all the code in this section generates the main directory
|
||||||
page, not the index of terms, which is all handled by
|
page, not the index of terms, which is all handled by
|
||||||
<a href="7-dct.html#SP15" class="internal">ExtensionDictionary::write_to_HTML</a>.
|
<a href="7-dct.html#SP14" class="internal">ExtensionDictionary::write_to_HTML</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Display the location of installed extensions</span><span class="named-paragraph-number">1.2.1.1</span></span><span class="comment-syntax"> =</span>
|
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Display the location of installed extensions</span><span class="named-paragraph-number">1.2.1.1</span></span><span class="comment-syntax"> =</span>
|
||||||
|
@ -655,7 +655,7 @@ the usual ones seen in Mac OS X applications such as iTunes.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;"</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">"&nbsp;"</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bulletornot</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bulletornot</span><span class="plain-syntax">);</span>
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP15" class="function-link"><span class="function-syntax">Works::begin_extension_link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::begin_extension_link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">));</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">, </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">SORT_CE_BY_AUTHOR</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">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">SORT_CE_BY_AUTHOR</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"404040"</span><span class="plain-syntax">);</span>
|
||||||
|
@ -673,7 +673,7 @@ the usual ones seen in Mac OS X applications such as iTunes.
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_title</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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">raw_title</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP15" class="function-link"><span class="function-syntax">Works::end_extension_link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="2-wrk.html#SP11" class="function-link"><span class="function-syntax">Works::end_extension_link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">compatibility</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">compatibility</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">parsed_from</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">parsed_from</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||||
|
@ -746,16 +746,15 @@ the first and last word and just look at what is in between:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"smaller\""</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"smaller\""</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">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_DATE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_INSTALL</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">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_DATE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_INSTALL</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">"%S"</span><span class="plain-syntax">, </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_usage_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">"%S"</span><span class="plain-syntax">, </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_usage_date</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</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">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_LENGTH</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">d</span><span class="plain-syntax"> == </span><span class="constant-syntax">SORT_CE_BY_LENGTH</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::forgot</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">))</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</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">"I did read this, but forgot"</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">"--"</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><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::never</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">"I've never read this"</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">else</span>
|
||||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d words"</span><span class="plain-syntax">, </span><a href="2-wrk.html#SP12" class="function-link"><span class="function-syntax">Works::get_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">-></span><span class="element-syntax">found_as</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</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">"%d words"</span><span class="plain-syntax">, </span><a href="5-es.html#SP3" class="function-link"><span class="function-syntax">Extensions::get_word_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</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="reserved-syntax">else</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::len</span><span class="plain-syntax">(</span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">)) > </span><span class="constant-syntax">0</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::len</span><span class="plain-syntax">(</span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">)) > </span><span class="constant-syntax">0</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">"%S"</span><span class="plain-syntax">, </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</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">"%S"</span><span class="plain-syntax">, </span><a href="7-cns.html#SP5" class="function-link"><span class="function-syntax">ExtensionCensus::ecd_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ecd</span><span class="plain-syntax">));</span>
|
||||||
|
|
|
@ -123,8 +123,6 @@ same either way. Here are the functions for (a) and (b) respectively:
|
||||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-tm.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Write individual pages on individual extensions</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-tm.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Write individual pages on individual extensions</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||||
|
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP10" class="function-link"><span class="function-syntax">ExtensionDictionary::write_back</span></a><span class="plain-syntax">();</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP10" class="function-link"><span class="function-syntax">ExtensionDictionary::write_back</span></a><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">Log::aspect_switched_on</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTENSIONS_CENSUS_DA</span><span class="plain-syntax">)) </span><a href="2-wrk.html#SP14" class="function-link"><span class="function-syntax">Works::log_work_hash_table</span></a><span class="plain-syntax">();</span>
|
|
||||||
<span class="plain-syntax">}</span>
|
<span class="plain-syntax">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2_1"></a><b>§2.1. </b>This simply ensures that dates used are updated to today's date for
|
<p class="commentary firstcommentary"><a id="SP2_1"></a><b>§2.1. </b>This simply ensures that dates used are updated to today's date for
|
||||||
|
@ -138,8 +136,10 @@ documentation as used today until the next run, for obscure timing reasons.
|
||||||
<pre class="displayed-code all-displayed-code code-font">
|
<pre class="displayed-code all-displayed-code code-font">
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</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">proj</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">extensions_included</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">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">extensions_included</span><span class="plain-syntax">) {</span>
|
||||||
<span class="plain-syntax"> </span><a href="7-dct.html#SP5" class="function-link"><span class="function-syntax">ExtensionDictionary::time_stamp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
<span class="plain-syntax"> </span><a href="7-dct.html#SP5" class="function-link"><span class="function-syntax">ExtensionDictionary::time_stamp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||||
|
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">has_historically_been_used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||||
|
<span class="plain-syntax"> }</span>
|
||||||
<span class="plain-syntax"> }</span>
|
<span class="plain-syntax"> }</span>
|
||||||
</pre>
|
</pre>
|
||||||
<ul class="endnotetexts"><li>This code is used in <a href="7-tm.html#SP2">§2</a>.</li></ul>
|
<ul class="endnotetexts"><li>This code is used in <a href="7-tm.html#SP2">§2</a>.</li></ul>
|
||||||
|
|
|
@ -302,7 +302,7 @@ placeholder.
|
||||||
<p class="commentary">The answer in fact depends on genre. For pipelines, languages and website
|
<p class="commentary">The answer in fact depends on genre. For pipelines, languages and website
|
||||||
templates, there are no dependencies, so there's nothing to build. For kits,
|
templates, there are no dependencies, so there's nothing to build. For kits,
|
||||||
extensions and projects, the task is performed by <a href="5-ks.html#SP13" class="internal">Kits::construct_graph</a>,
|
extensions and projects, the task is performed by <a href="5-ks.html#SP13" class="internal">Kits::construct_graph</a>,
|
||||||
<a href="5-es.html#SP5" class="internal">Extensions::construct_graph</a> and <a href="5-ps2.html#SP24" class="internal">Projects::construct_graph</a>. Kits are
|
<a href="5-es.html#SP6" class="internal">Extensions::construct_graph</a> and <a href="5-ps2.html#SP24" class="internal">Projects::construct_graph</a>. Kits are
|
||||||
graphed when the Supervisor "goes operational", because
|
graphed when the Supervisor "goes operational", because
|
||||||
<a href="1-ic.html#SP10" class="internal">Supervisor::go_operational</a> calls <a href="2-cps.html#SP8" class="internal">Copies::construct_graph</a> for
|
<a href="1-ic.html#SP10" class="internal">Supervisor::go_operational</a> calls <a href="2-cps.html#SP8" class="internal">Copies::construct_graph</a> for
|
||||||
every extant copy.
|
every extant copy.
|
||||||
|
@ -331,7 +331,7 @@ as the first.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="commentary">Reading is performed by <a href="5-ps2.html#SP27" class="internal">Projects::read_source_text_for</a> and
|
<p class="commentary">Reading is performed by <a href="5-ps2.html#SP27" class="internal">Projects::read_source_text_for</a> and
|
||||||
<a href="5-es.html#SP6" class="internal">Extensions::read_source_text_for</a>. For extensions this involves reading
|
<a href="5-es.html#SP7" class="internal">Extensions::read_source_text_for</a>. For extensions this involves reading
|
||||||
only a single file, but for projects it can involve multiple files. Each
|
only a single file, but for projects it can involve multiple files. Each
|
||||||
such is read by a call to <a href="6-st.html#SP3" class="internal">SourceText::read_file</a>, which then sends out
|
such is read by a call to <a href="6-st.html#SP3" class="internal">SourceText::read_file</a>, which then sends out
|
||||||
to the <a href="../words-module/index.html" class="internal">words</a> module to break the text file into a stream of words:
|
to the <a href="../words-module/index.html" class="internal">words</a> module to break the text file into a stream of words:
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">SYNTAX_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">SYNTAX_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">parse_node_CLASS</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">parse_node_CLASS</span>
|
||||||
|
|
|
@ -65,7 +65,7 @@ which use this module:
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">WORDS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">WORDS_MODULE</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This module defines the following classes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">LEXER_TEXT_MREASON</span>
|
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">LEXER_TEXT_MREASON</span>
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d SUPERVISOR_MODULE TRUE
|
@d SUPERVISOR_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e build_methodology_CLASS
|
@e build_methodology_CLASS
|
||||||
@e build_script_CLASS
|
@e build_script_CLASS
|
||||||
|
@ -18,8 +18,8 @@ which use this module:
|
||||||
@e control_structure_phrase_CLASS
|
@e control_structure_phrase_CLASS
|
||||||
@e copy_error_CLASS
|
@e copy_error_CLASS
|
||||||
@e element_activation_CLASS
|
@e element_activation_CLASS
|
||||||
@e extension_census_datum_CLASS
|
|
||||||
@e extension_census_CLASS
|
@e extension_census_CLASS
|
||||||
|
@e extension_census_datum_CLASS
|
||||||
@e extension_dictionary_entry_CLASS
|
@e extension_dictionary_entry_CLASS
|
||||||
@e heading_CLASS
|
@e heading_CLASS
|
||||||
@e heading_tree_CLASS
|
@e heading_tree_CLASS
|
||||||
|
@ -31,8 +31,8 @@ which use this module:
|
||||||
@e inbuild_search_result_CLASS
|
@e inbuild_search_result_CLASS
|
||||||
@e inbuild_work_CLASS
|
@e inbuild_work_CLASS
|
||||||
@e inform_extension_CLASS
|
@e inform_extension_CLASS
|
||||||
@e inform_kit_ittt_CLASS
|
|
||||||
@e inform_kit_CLASS
|
@e inform_kit_CLASS
|
||||||
|
@e inform_kit_ittt_CLASS
|
||||||
@e inform_language_CLASS
|
@e inform_language_CLASS
|
||||||
@e inform_pipeline_CLASS
|
@e inform_pipeline_CLASS
|
||||||
@e inform_project_CLASS
|
@e inform_project_CLASS
|
||||||
|
@ -40,8 +40,6 @@ which use this module:
|
||||||
@e kit_dependency_CLASS
|
@e kit_dependency_CLASS
|
||||||
@e known_extension_clash_CLASS
|
@e known_extension_clash_CLASS
|
||||||
|
|
||||||
@e inbuild_work_database_entry_CLASS
|
|
||||||
|
|
||||||
=
|
=
|
||||||
DECLARE_CLASS(build_methodology)
|
DECLARE_CLASS(build_methodology)
|
||||||
DECLARE_CLASS(build_script)
|
DECLARE_CLASS(build_script)
|
||||||
|
@ -54,8 +52,8 @@ DECLARE_CLASS(element_activation)
|
||||||
DECLARE_CLASS(extension_census_datum)
|
DECLARE_CLASS(extension_census_datum)
|
||||||
DECLARE_CLASS(extension_census)
|
DECLARE_CLASS(extension_census)
|
||||||
DECLARE_CLASS(extension_dictionary_entry)
|
DECLARE_CLASS(extension_dictionary_entry)
|
||||||
DECLARE_CLASS(heading)
|
|
||||||
DECLARE_CLASS(heading_tree)
|
DECLARE_CLASS(heading_tree)
|
||||||
|
DECLARE_CLASS(heading)
|
||||||
DECLARE_CLASS(inbuild_copy)
|
DECLARE_CLASS(inbuild_copy)
|
||||||
DECLARE_CLASS(inbuild_edition)
|
DECLARE_CLASS(inbuild_edition)
|
||||||
DECLARE_CLASS(inbuild_genre)
|
DECLARE_CLASS(inbuild_genre)
|
||||||
|
@ -73,8 +71,6 @@ DECLARE_CLASS(inform_template)
|
||||||
DECLARE_CLASS(kit_dependency)
|
DECLARE_CLASS(kit_dependency)
|
||||||
DECLARE_CLASS(known_extension_clash)
|
DECLARE_CLASS(known_extension_clash)
|
||||||
|
|
||||||
DECLARE_CLASS_ALLOCATED_IN_ARRAYS(inbuild_work_database_entry, 100)
|
|
||||||
|
|
||||||
@ Like all modules, this one must define a |start| and |end| function:
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
|
|
||||||
=
|
=
|
||||||
|
|
|
@ -29,8 +29,6 @@ typedef struct inbuild_work {
|
||||||
@ Each work structure is written only once, and its title and author name are
|
@ Each work structure is written only once, and its title and author name are
|
||||||
not subsequently altered.
|
not subsequently altered.
|
||||||
|
|
||||||
@d WORK_HASH_CODING_BASE 499
|
|
||||||
|
|
||||||
=
|
=
|
||||||
inbuild_work *Works::new(inbuild_genre *genre, text_stream *ti, text_stream *an) {
|
inbuild_work *Works::new(inbuild_genre *genre, text_stream *ti, text_stream *an) {
|
||||||
return Works::new_inner(genre, ti, an, TRUE);
|
return Works::new_inner(genre, ti, an, TRUE);
|
||||||
|
@ -66,11 +64,11 @@ inbuild_work *Works::new_inner(inbuild_genre *genre, text_stream *ti, text_strea
|
||||||
return work;
|
return work;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ We hash-code all works on arrival, using the X 30011 algorithm, with 499
|
@ We hash-code all works on arrival, using the X 30011 algorithm, on the text
|
||||||
(coprime to 30011) as base, to the text of the pseudo-pathname |Author/Title|.
|
of the pseudo-pathname |Author/Title|. The result is an integer between 0 and
|
||||||
|
the following constant minus 1.
|
||||||
|
|
||||||
The hash code is an integer between 0 and the following constant minus 1,
|
@d WORK_HASH_CODING_BASE 499 /* this is coprime to 30011 */
|
||||||
derived from its title and author name.
|
|
||||||
|
|
||||||
@<Compute the hash code@> =
|
@<Compute the hash code@> =
|
||||||
unsigned int hc = 0;
|
unsigned int hc = 0;
|
||||||
|
@ -175,8 +173,7 @@ int Works::match(inbuild_work *eid1, inbuild_work *eid2) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ These are quite a deal slower, but are trichotomous and can be used for
|
@ This is quite a deal slower, but is trichotomous and can be used for sorting.
|
||||||
sorting.
|
|
||||||
|
|
||||||
=
|
=
|
||||||
int Works::compare(inbuild_work *eid1, inbuild_work *eid2) {
|
int Works::compare(inbuild_work *eid1, inbuild_work *eid2) {
|
||||||
|
@ -186,31 +183,6 @@ int Works::compare(inbuild_work *eid1, inbuild_work *eid2) {
|
||||||
return Str::cmp(eid1->title, eid2->title);
|
return Str::cmp(eid1->title, eid2->title);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Works::compare_by_title(inbuild_work *eid1, inbuild_work *eid2) {
|
|
||||||
if ((eid1 == NULL) || (eid2 == NULL)) internal_error("bad work match");
|
|
||||||
int d = Str::cmp(eid1->title, eid2->title);
|
|
||||||
if (d != 0) return d;
|
|
||||||
return Str::cmp(eid1->author_name, eid2->author_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
int Works::compare_by_date(inbuild_work *eid1, inbuild_work *eid2) {
|
|
||||||
if ((eid1 == NULL) || (eid2 == NULL)) internal_error("bad work match");
|
|
||||||
int d = Str::cmp(Works::get_sort_date(eid2), Works::get_sort_date(eid1));
|
|
||||||
if (d != 0) return d;
|
|
||||||
d = Str::cmp(eid1->title, eid2->title);
|
|
||||||
if (d != 0) return d;
|
|
||||||
return Str::cmp(eid1->author_name, eid2->author_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
int Works::compare_by_length(inbuild_work *eid1, inbuild_work *eid2) {
|
|
||||||
if ((eid1 == NULL) || (eid2 == NULL)) internal_error("bad work match");
|
|
||||||
int d = Str::cmp(Works::get_sort_word_count(eid2), Works::get_sort_word_count(eid1));
|
|
||||||
if (d != 0) return d;
|
|
||||||
d = Str::cmp(eid1->title, eid2->title);
|
|
||||||
if (d != 0) return d;
|
|
||||||
return Str::cmp(eid1->author_name, eid2->author_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ Because Basic Inform and the Standard Rules extensions are treated slightly
|
@ Because Basic Inform and the Standard Rules extensions are treated slightly
|
||||||
differently by the documentation, and so forth, it's convenient to provide a
|
differently by the documentation, and so forth, it's convenient to provide a
|
||||||
single function testing if a work refers to them.
|
single function testing if a work refers to them.
|
||||||
|
@ -218,231 +190,22 @@ single function testing if a work refers to them.
|
||||||
=
|
=
|
||||||
inbuild_work *a_work_for_standard_rules = NULL;
|
inbuild_work *a_work_for_standard_rules = NULL;
|
||||||
int Works::is_standard_rules(inbuild_work *work) {
|
int Works::is_standard_rules(inbuild_work *work) {
|
||||||
if (a_work_for_standard_rules == NULL) {
|
if (a_work_for_standard_rules == NULL)
|
||||||
a_work_for_standard_rules =
|
a_work_for_standard_rules =
|
||||||
Works::new(extension_genre, I"Standard Rules", I"Graham Nelson");
|
Works::new(extension_genre, I"Standard Rules", I"Graham Nelson");
|
||||||
Works::add_to_database(a_work_for_standard_rules, HYPOTHETICAL_WDBC);
|
|
||||||
}
|
|
||||||
if (work == NULL) return FALSE;
|
if (work == NULL) return FALSE;
|
||||||
return Works::match(work, a_work_for_standard_rules);
|
return Works::match(work, a_work_for_standard_rules);
|
||||||
}
|
}
|
||||||
|
|
||||||
inbuild_work *a_work_for_basic_inform = NULL;
|
inbuild_work *a_work_for_basic_inform = NULL;
|
||||||
int Works::is_basic_inform(inbuild_work *work) {
|
int Works::is_basic_inform(inbuild_work *work) {
|
||||||
if (a_work_for_basic_inform == NULL) {
|
if (a_work_for_basic_inform == NULL)
|
||||||
a_work_for_basic_inform =
|
a_work_for_basic_inform =
|
||||||
Works::new(extension_genre, I"Basic Inform", I"Graham Nelson");
|
Works::new(extension_genre, I"Basic Inform", I"Graham Nelson");
|
||||||
Works::add_to_database(a_work_for_basic_inform, HYPOTHETICAL_WDBC);
|
|
||||||
}
|
|
||||||
if (work == NULL) return FALSE;
|
if (work == NULL) return FALSE;
|
||||||
return Works::match(work, a_work_for_basic_inform);
|
return Works::match(work, a_work_for_basic_inform);
|
||||||
}
|
}
|
||||||
|
|
||||||
@h The database of known works.
|
|
||||||
We will need to be able to give rapid answers to questions like "is there
|
|
||||||
an installed extension with this work?" and "does any entry in the dictionary
|
|
||||||
relate to this work?": there may be many extensions and very many dictionary
|
|
||||||
entries, so we keep an incidence count of each work and in what context it
|
|
||||||
has been used, and store that in a hash table. Note that each distinct work
|
|
||||||
is recorded only once in the table: this is important, as although an
|
|
||||||
individual extension can only be loaded or installed once, it could be
|
|
||||||
referred to in the dictionary dozens or even hundreds of times.
|
|
||||||
|
|
||||||
The table is unsorted and is intended for rapid searching. Typically there
|
|
||||||
will be only a handful of works in the list of those with a given hash code:
|
|
||||||
indeed, the typical number will be 0 or 1.
|
|
||||||
|
|
||||||
Works are entered into the database with one of the following contexts:
|
|
||||||
|
|
||||||
@d NO_WDB_CONTEXTS 6
|
|
||||||
@d LOADED_WDBC 0
|
|
||||||
@d INSTALLED_WDBC 1
|
|
||||||
@d DICTIONARY_REFERRED_WDBC 2
|
|
||||||
@d HYPOTHETICAL_WDBC 3
|
|
||||||
@d USEWITH_WDBC 4
|
|
||||||
@d CLAIMED_WDBC 5
|
|
||||||
|
|
||||||
=
|
|
||||||
typedef struct inbuild_work_database_entry {
|
|
||||||
struct inbuild_work *work;
|
|
||||||
struct inbuild_work_database_entry *hash_next; /* next one in hashed work database */
|
|
||||||
int incidence_count[NO_WDB_CONTEXTS];
|
|
||||||
struct text_stream *last_usage_date;
|
|
||||||
struct text_stream *sort_usage_date;
|
|
||||||
struct text_stream *word_count_text;
|
|
||||||
int word_count_number;
|
|
||||||
} inbuild_work_database_entry;
|
|
||||||
|
|
||||||
int work_database_created = FALSE;
|
|
||||||
inbuild_work_database_entry *hash_of_works[WORK_HASH_CODING_BASE];
|
|
||||||
|
|
||||||
void Works::add_to_database(inbuild_work *work, int context) {
|
|
||||||
if (work_database_created == FALSE) {
|
|
||||||
work_database_created = TRUE;
|
|
||||||
for (int i=0; i<WORK_HASH_CODING_BASE; i++) hash_of_works[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
iwde->incidence_count[context]++;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
iwde = CREATE(inbuild_work_database_entry);
|
|
||||||
iwde->hash_next = hash_of_works[hc]; hash_of_works[hc] = iwde;
|
|
||||||
iwde->work = work;
|
|
||||||
for (int i=0; i<NO_WDB_CONTEXTS; i++) iwde->incidence_count[i] = 0;
|
|
||||||
iwde->incidence_count[context] = 1;
|
|
||||||
iwde->last_usage_date = Str::new();
|
|
||||||
iwde->sort_usage_date = Str::new();
|
|
||||||
iwde->word_count_text = Str::new();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ This gives us reasonably rapid access to a shared date:
|
|
||||||
|
|
||||||
=
|
|
||||||
void Works::set_usage_date(inbuild_work *work, text_stream *date) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
Str::copy(iwde->last_usage_date, date);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Works::set_sort_date(inbuild_work *work, text_stream *date) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
Str::copy(iwde->sort_usage_date, date);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
text_stream *Works::get_usage_date(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
if (Str::len(iwde->last_usage_date) > 0)
|
|
||||||
return iwde->last_usage_date;
|
|
||||||
if (iwde->incidence_count[DICTIONARY_REFERRED_WDBC] > 0)
|
|
||||||
return I"Once upon a time";
|
|
||||||
return I"Never";
|
|
||||||
}
|
|
||||||
return I"---";
|
|
||||||
}
|
|
||||||
|
|
||||||
text_stream *Works::get_sort_date(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
if (Str::len(iwde->sort_usage_date) > 0)
|
|
||||||
return iwde->sort_usage_date;
|
|
||||||
if (iwde->incidence_count[DICTIONARY_REFERRED_WDBC] > 0)
|
|
||||||
return I"00000000000000Once upon a time";
|
|
||||||
return I"00000000000000Never";
|
|
||||||
}
|
|
||||||
return I"000000000000000";
|
|
||||||
}
|
|
||||||
|
|
||||||
void Works::set_word_count(inbuild_work *work, int wc) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
WRITE_TO(iwde->word_count_text, "%08d words", wc);
|
|
||||||
iwde->word_count_number = wc;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
text_stream *Works::get_sort_word_count(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
if (Str::len(iwde->word_count_text) > 0)
|
|
||||||
return iwde->word_count_text;
|
|
||||||
if (iwde->incidence_count[DICTIONARY_REFERRED_WDBC] > 0)
|
|
||||||
return I"00000000I did read this, but forgot";
|
|
||||||
return I"00000000I've never read this";
|
|
||||||
}
|
|
||||||
return I"---";
|
|
||||||
}
|
|
||||||
|
|
||||||
int Works::forgot(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
if (Str::len(iwde->word_count_text) > 0)
|
|
||||||
return FALSE;
|
|
||||||
if (iwde->incidence_count[DICTIONARY_REFERRED_WDBC] > 0)
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Works::never(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) {
|
|
||||||
if (Str::len(iwde->word_count_text) > 0)
|
|
||||||
return FALSE;
|
|
||||||
if (iwde->incidence_count[DICTIONARY_REFERRED_WDBC] > 0)
|
|
||||||
return FALSE;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Works::get_word_count(inbuild_work *work) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
int hc = work->inbuild_work_hash_code;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work))
|
|
||||||
return iwde->word_count_number;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ The purpose of the hash table is to enable us to reply quickly when asked
|
|
||||||
for one of the following usage counts:
|
|
||||||
|
|
||||||
=
|
|
||||||
int Works::no_times_used_in_context(inbuild_work *work, int context) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
for (iwde = hash_of_works[work->inbuild_work_hash_code]; iwde; iwde = iwde->hash_next)
|
|
||||||
if (Works::match(work, iwde->work)) return iwde->incidence_count[context];
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ The work hash table makes quite interesting reading, so:
|
|
||||||
|
|
||||||
=
|
|
||||||
void Works::log_work_hash_table(void) {
|
|
||||||
int hc, total = 0;
|
|
||||||
LOG("Work identifier hash table:\n");
|
|
||||||
for (hc=0; hc<WORK_HASH_CODING_BASE; hc++) {
|
|
||||||
inbuild_work_database_entry *iwde;
|
|
||||||
for (iwde = hash_of_works[hc]; iwde; iwde = iwde->hash_next) {
|
|
||||||
total++;
|
|
||||||
LOG("%03d %3d %3d %3d %3d %X\n",
|
|
||||||
hc, iwde->incidence_count[0], iwde->incidence_count[1],
|
|
||||||
iwde->incidence_count[2], iwde->incidence_count[3],
|
|
||||||
iwde->work);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LOG("%d entries in all\n", total);
|
|
||||||
}
|
|
||||||
|
|
||||||
@h Documentation links.
|
@h Documentation links.
|
||||||
This is where HTML links to extension documentation are created; the URL for
|
This is where HTML links to extension documentation are created; the URL for
|
||||||
each extension's page is generated from its |inbuild_work|.
|
each extension's page is generated from its |inbuild_work|.
|
||||||
|
|
|
@ -95,9 +95,7 @@ void ExtensionManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
|
|
||||||
inbuild_copy *ExtensionManager::claim_file_as_copy(filename *F) {
|
inbuild_copy *ExtensionManager::claim_file_as_copy(filename *F) {
|
||||||
if (TextFiles::exists(F) == FALSE) return NULL;
|
if (TextFiles::exists(F) == FALSE) return NULL;
|
||||||
inbuild_copy *C = ExtensionManager::new_copy(F);
|
return ExtensionManager::new_copy(F);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@h Searching.
|
@h Searching.
|
||||||
|
|
|
@ -92,11 +92,8 @@ void KitManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
|
|
||||||
inbuild_copy *KitManager::claim_folder_as_copy(pathname *P) {
|
inbuild_copy *KitManager::claim_folder_as_copy(pathname *P) {
|
||||||
filename *canary = Filenames::in(P, I"kit_metadata.txt");
|
filename *canary = Filenames::in(P, I"kit_metadata.txt");
|
||||||
if (TextFiles::exists(canary)) {
|
if (TextFiles::exists(canary))
|
||||||
inbuild_copy *C = KitManager::new_copy(Pathnames::directory_name(P), P);
|
return KitManager::new_copy(Pathnames::directory_name(P), P);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,11 +92,8 @@ void LanguageManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
|
|
||||||
inbuild_copy *LanguageManager::claim_folder_as_copy(pathname *P) {
|
inbuild_copy *LanguageManager::claim_folder_as_copy(pathname *P) {
|
||||||
filename *canary = Filenames::in(P, I"about.txt");
|
filename *canary = Filenames::in(P, I"about.txt");
|
||||||
if (TextFiles::exists(canary)) {
|
if (TextFiles::exists(canary))
|
||||||
inbuild_copy *C = LanguageManager::new_copy(Pathnames::directory_name(P), P);
|
return LanguageManager::new_copy(Pathnames::directory_name(P), P);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,6 @@ inbuild_copy *PipelineManager::claim_file_as_copy(filename *F, text_stream *erro
|
||||||
inbuild_copy *C = PipelineManager::new_copy(
|
inbuild_copy *C = PipelineManager::new_copy(
|
||||||
Editions::new(Works::new_raw(pipeline_genre, unext, NULL), V), F);
|
Editions::new(Works::new_raw(pipeline_genre, unext, NULL), V), F);
|
||||||
DISCARD_TEXT(unext);
|
DISCARD_TEXT(unext);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
return C;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,9 +71,7 @@ void ProjectBundleManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
}
|
}
|
||||||
|
|
||||||
inbuild_copy *ProjectBundleManager::claim_folder_as_copy(pathname *P) {
|
inbuild_copy *ProjectBundleManager::claim_folder_as_copy(pathname *P) {
|
||||||
inbuild_copy *C = ProjectBundleManager::new_copy(Pathnames::directory_name(P), P);
|
return ProjectBundleManager::new_copy(Pathnames::directory_name(P), P);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@h Searching.
|
@h Searching.
|
||||||
|
|
|
@ -72,9 +72,7 @@ void ProjectFileManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
}
|
}
|
||||||
|
|
||||||
inbuild_copy *ProjectFileManager::claim_file_as_copy(filename *F) {
|
inbuild_copy *ProjectFileManager::claim_file_as_copy(filename *F) {
|
||||||
inbuild_copy *C = ProjectFileManager::new_copy(Filenames::get_leafname(F), F);
|
return ProjectFileManager::new_copy(Filenames::get_leafname(F), F);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@h Searching.
|
@h Searching.
|
||||||
|
|
|
@ -71,11 +71,8 @@ void TemplateManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
|
||||||
inbuild_copy *TemplateManager::claim_folder_as_copy(pathname *P) {
|
inbuild_copy *TemplateManager::claim_folder_as_copy(pathname *P) {
|
||||||
filename *canary1 = Filenames::in(P, I"(manifest).txt");
|
filename *canary1 = Filenames::in(P, I"(manifest).txt");
|
||||||
filename *canary2 = Filenames::in(P, I"index.html");
|
filename *canary2 = Filenames::in(P, I"index.html");
|
||||||
if ((TextFiles::exists(canary1)) || (TextFiles::exists(canary2))) {
|
if ((TextFiles::exists(canary1)) || (TextFiles::exists(canary2)))
|
||||||
inbuild_copy *C = TemplateManager::new_copy(Pathnames::directory_name(P), P);
|
return TemplateManager::new_copy(Pathnames::directory_name(P), P);
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
return C;
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,10 @@ typedef struct inform_extension {
|
||||||
struct parse_node_tree *syntax_tree;
|
struct parse_node_tree *syntax_tree;
|
||||||
struct parse_node *inclusion_sentence; /* Where the source called for this */
|
struct parse_node *inclusion_sentence; /* Where the source called for this */
|
||||||
struct linked_list *search_list; /* of |inbuild_nest| */
|
struct linked_list *search_list; /* of |inbuild_nest| */
|
||||||
|
int word_count; /* or 0 if this hasn't been read (yet) */
|
||||||
|
struct text_stream *last_usage_date; /* perhaps on a previous run */
|
||||||
|
struct text_stream *sort_usage_date; /* used temporarily when sorting */
|
||||||
|
int has_historically_been_used;
|
||||||
CLASS_DEFINITION
|
CLASS_DEFINITION
|
||||||
} inform_extension;
|
} inform_extension;
|
||||||
|
|
||||||
|
@ -46,7 +50,6 @@ void Extensions::scan(inbuild_copy *C) {
|
||||||
semantic_version_number V = VersionNumbers::null();
|
semantic_version_number V = VersionNumbers::null();
|
||||||
@<Scan the file@>;
|
@<Scan the file@>;
|
||||||
@<Change the edition of the copy in light of the metadata found in the scan@>;
|
@<Change the edition of the copy in light of the metadata found in the scan@>;
|
||||||
Works::add_to_database(C->edition->work, CLAIMED_WDBC);
|
|
||||||
DISCARD_TEXT(claimed_author_name);
|
DISCARD_TEXT(claimed_author_name);
|
||||||
DISCARD_TEXT(claimed_title);
|
DISCARD_TEXT(claimed_title);
|
||||||
DISCARD_TEXT(reqs);
|
DISCARD_TEXT(reqs);
|
||||||
|
@ -69,6 +72,10 @@ void Extensions::scan(inbuild_copy *C) {
|
||||||
E->syntax_tree = ParseTree::new_tree();
|
E->syntax_tree = ParseTree::new_tree();
|
||||||
E->inclusion_sentence = NULL;
|
E->inclusion_sentence = NULL;
|
||||||
E->search_list = NEW_LINKED_LIST(inbuild_nest);
|
E->search_list = NEW_LINKED_LIST(inbuild_nest);
|
||||||
|
E->has_historically_been_used = FALSE;
|
||||||
|
E->word_count = 0;
|
||||||
|
E->last_usage_date = Str::new();
|
||||||
|
E->sort_usage_date = Str::new();
|
||||||
|
|
||||||
@ The following scans a potential extension file. If it seems malformed, a
|
@ The following scans a potential extension file. If it seems malformed, a
|
||||||
suitable error is written to the stream |error_text|. If not, this is left
|
suitable error is written to the stream |error_text|. If not, this is left
|
||||||
|
@ -221,6 +228,81 @@ are immutable, and need to be for the extensions dictionary to work.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@h Cached metadata.
|
||||||
|
The following data hides between runs in the //Dictionary//.
|
||||||
|
|
||||||
|
=
|
||||||
|
void Extensions::set_usage_date(inform_extension *E, text_stream *date) {
|
||||||
|
Str::clear(E->last_usage_date);
|
||||||
|
Str::copy(E->last_usage_date, date);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Extensions::set_sort_date(inform_extension *E, text_stream *date) {
|
||||||
|
Str::clear(E->sort_usage_date);
|
||||||
|
Str::copy(E->sort_usage_date, date);
|
||||||
|
}
|
||||||
|
|
||||||
|
text_stream *Extensions::get_usage_date(inform_extension *E) {
|
||||||
|
return E->last_usage_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
text_stream *Extensions::get_sort_date(inform_extension *E) {
|
||||||
|
return E->sort_usage_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Extensions::set_word_count(inform_extension *E, int wc) {
|
||||||
|
E->word_count = wc;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::get_word_count(inform_extension *E) {
|
||||||
|
return E->word_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
text_stream *Extensions::get_sort_word_count(inform_extension *E) {
|
||||||
|
text_stream *T = Str::new();
|
||||||
|
WRITE_TO(T, "%8d", E->word_count);
|
||||||
|
return T;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::compare_by_edition(inform_extension *E1, inform_extension *E2) {
|
||||||
|
if ((E1 == NULL) || (E2 == NULL)) internal_error("bad work match");
|
||||||
|
int d = Works::compare(E1->as_copy->edition->work, E2->as_copy->edition->work);
|
||||||
|
if (d != 0) return d;
|
||||||
|
return VersionNumbers::cmp(
|
||||||
|
E1->as_copy->edition->version, E2->as_copy->edition->version);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::compare_by_date(inform_extension *E1, inform_extension *E2) {
|
||||||
|
if ((E1 == NULL) || (E2 == NULL)) internal_error("bad work match");
|
||||||
|
int d = Str::cmp(Extensions::get_sort_date(E2), Extensions::get_sort_date(E1));
|
||||||
|
if (d != 0) return d;
|
||||||
|
return Extensions::compare_by_edition(E1, E2);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::compare_by_author(inform_extension *E1, inform_extension *E2) {
|
||||||
|
if ((E1 == NULL) || (E2 == NULL)) internal_error("bad work match");
|
||||||
|
int d = Str::cmp(E2->as_copy->edition->work->author_name,
|
||||||
|
E1->as_copy->edition->work->author_name);
|
||||||
|
if (d != 0) return d;
|
||||||
|
return Extensions::compare_by_edition(E1, E2);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::compare_by_title(inform_extension *E1, inform_extension *E2) {
|
||||||
|
if ((E1 == NULL) || (E2 == NULL)) internal_error("bad work match");
|
||||||
|
int d = Str::cmp(E2->as_copy->edition->work->title,
|
||||||
|
E1->as_copy->edition->work->title);
|
||||||
|
if (d != 0) return d;
|
||||||
|
return Extensions::compare_by_edition(E1, E2);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Extensions::compare_by_length(inform_extension *E1, inform_extension *E2) {
|
||||||
|
if ((E1 == NULL) || (E2 == NULL)) internal_error("bad work match");
|
||||||
|
int d = Str::cmp(
|
||||||
|
Extensions::get_sort_word_count(E2), Extensions::get_sort_word_count(E1));
|
||||||
|
if (d != 0) return d;
|
||||||
|
return Extensions::compare_by_edition(E1, E2);
|
||||||
|
}
|
||||||
|
|
||||||
@h Search list.
|
@h Search list.
|
||||||
Sometimes ane extension is being looked at in isolation, and then |read_into_project|
|
Sometimes ane extension is being looked at in isolation, and then |read_into_project|
|
||||||
will be |NULL|; but if it is being loaded to be included in the source text of a
|
will be |NULL|; but if it is being loaded to be included in the source text of a
|
||||||
|
|
|
@ -346,7 +346,6 @@ allowed; they should probably be withdrawn.
|
||||||
WRITE_TO(exft, "%+W", TW);
|
WRITE_TO(exft, "%+W", TW);
|
||||||
WRITE_TO(exfa, "%+W", AW);
|
WRITE_TO(exfa, "%+W", AW);
|
||||||
work_identified = Works::new(extension_genre, exft, exfa);
|
work_identified = Works::new(extension_genre, exft, exfa);
|
||||||
Works::add_to_database(work_identified, USEWITH_WDBC);
|
|
||||||
DISCARD_TEXT(exft);
|
DISCARD_TEXT(exft);
|
||||||
DISCARD_TEXT(exfa);
|
DISCARD_TEXT(exfa);
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,6 @@ parse tree.
|
||||||
WRITE_TO(exft, "%+W", W);
|
WRITE_TO(exft, "%+W", W);
|
||||||
WRITE_TO(exfa, "%+W", AW);
|
WRITE_TO(exfa, "%+W", AW);
|
||||||
inbuild_work *work = Works::new(extension_genre, exft, exfa);
|
inbuild_work *work = Works::new(extension_genre, exft, exfa);
|
||||||
Works::add_to_database(work, LOADED_WDBC);
|
|
||||||
semantic_version_number V = VersionNumbers::null();
|
semantic_version_number V = VersionNumbers::null();
|
||||||
if (version_word >= 0) V = Inclusions::parse_version(version_word);
|
if (version_word >= 0) V = Inclusions::parse_version(version_word);
|
||||||
semver_range *R = VersionNumberRanges::compatibility_range(V);
|
semver_range *R = VersionNumberRanges::compatibility_range(V);
|
||||||
|
|
|
@ -75,11 +75,8 @@ int ExtensionCensus::installation_region(extension_census_datum *ecd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int ExtensionCensus::ecd_used(extension_census_datum *ecd) {
|
int ExtensionCensus::ecd_used(extension_census_datum *ecd) {
|
||||||
inbuild_work *work = ecd->found_as->copy->edition->work;
|
inform_extension *E = ExtensionManager::from_copy(ecd->found_as->copy);
|
||||||
if ((Works::no_times_used_in_context(work, LOADED_WDBC) > 0) ||
|
return E->has_historically_been_used;
|
||||||
(Works::no_times_used_in_context(work, DICTIONARY_REFERRED_WDBC) > 0))
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ The following give some sorting criteria, and are functions fit to be
|
@ The following give some sorting criteria, and are functions fit to be
|
||||||
|
@ -89,44 +86,44 @@ handed to |qsort|.
|
||||||
int ExtensionCensus::compare_ecd_by_title(const void *ecd1, const void *ecd2) {
|
int ExtensionCensus::compare_ecd_by_title(const void *ecd1, const void *ecd2) {
|
||||||
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
||||||
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
||||||
inbuild_work *work1 = e1->found_as->copy->edition->work;
|
inform_extension *E1 = ExtensionManager::from_copy(e1->found_as->copy);
|
||||||
inbuild_work *work2 = e2->found_as->copy->edition->work;
|
inform_extension *E2 = ExtensionManager::from_copy(e2->found_as->copy);
|
||||||
return Works::compare_by_title(work1, work2);
|
return Extensions::compare_by_title(E2, E1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ExtensionCensus::compare_ecd_by_author(const void *ecd1, const void *ecd2) {
|
int ExtensionCensus::compare_ecd_by_author(const void *ecd1, const void *ecd2) {
|
||||||
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
||||||
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
||||||
inbuild_work *work1 = e1->found_as->copy->edition->work;
|
inform_extension *E1 = ExtensionManager::from_copy(e1->found_as->copy);
|
||||||
inbuild_work *work2 = e2->found_as->copy->edition->work;
|
inform_extension *E2 = ExtensionManager::from_copy(e2->found_as->copy);
|
||||||
return Works::compare(work1, work2);
|
return Extensions::compare_by_author(E2, E1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ExtensionCensus::compare_ecd_by_installation(const void *ecd1, const void *ecd2) {
|
int ExtensionCensus::compare_ecd_by_installation(const void *ecd1, const void *ecd2) {
|
||||||
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
||||||
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
||||||
inbuild_work *work1 = e1->found_as->copy->edition->work;
|
|
||||||
inbuild_work *work2 = e2->found_as->copy->edition->work;
|
|
||||||
int d = ExtensionCensus::installation_region(e1) -
|
int d = ExtensionCensus::installation_region(e1) -
|
||||||
ExtensionCensus::installation_region(e2);
|
ExtensionCensus::installation_region(e2);
|
||||||
if (d != 0) return d;
|
if (d != 0) return d;
|
||||||
return Works::compare_by_title(work1, work2);
|
inform_extension *E1 = ExtensionManager::from_copy(e1->found_as->copy);
|
||||||
|
inform_extension *E2 = ExtensionManager::from_copy(e2->found_as->copy);
|
||||||
|
return Extensions::compare_by_edition(E1, E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ExtensionCensus::compare_ecd_by_date(const void *ecd1, const void *ecd2) {
|
int ExtensionCensus::compare_ecd_by_date(const void *ecd1, const void *ecd2) {
|
||||||
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
||||||
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
||||||
inbuild_work *work1 = e1->found_as->copy->edition->work;
|
inform_extension *E1 = ExtensionManager::from_copy(e1->found_as->copy);
|
||||||
inbuild_work *work2 = e2->found_as->copy->edition->work;
|
inform_extension *E2 = ExtensionManager::from_copy(e2->found_as->copy);
|
||||||
return Works::compare_by_date(work1, work2);
|
return Extensions::compare_by_date(E1, E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ExtensionCensus::compare_ecd_by_length(const void *ecd1, const void *ecd2) {
|
int ExtensionCensus::compare_ecd_by_length(const void *ecd1, const void *ecd2) {
|
||||||
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
extension_census_datum *e1 = *((extension_census_datum **) ecd1);
|
||||||
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
extension_census_datum *e2 = *((extension_census_datum **) ecd2);
|
||||||
inbuild_work *work1 = e1->found_as->copy->edition->work;
|
inform_extension *E1 = ExtensionManager::from_copy(e1->found_as->copy);
|
||||||
inbuild_work *work2 = e2->found_as->copy->edition->work;
|
inform_extension *E2 = ExtensionManager::from_copy(e2->found_as->copy);
|
||||||
return Works::compare_by_length(work1, work2);
|
return Extensions::compare_by_length(E1, E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@h Performing the census.
|
@h Performing the census.
|
||||||
|
@ -174,6 +171,5 @@ truncate it.
|
||||||
@<Add to the census data@> =
|
@<Add to the census data@> =
|
||||||
extension_census_datum *ecd = CREATE(extension_census_datum);
|
extension_census_datum *ecd = CREATE(extension_census_datum);
|
||||||
ecd->found_as = R;
|
ecd->found_as = R;
|
||||||
Works::add_to_database(R->copy->edition->work, INSTALLED_WDBC);
|
|
||||||
ecd->overriding_a_built_in_extension = FALSE;
|
ecd->overriding_a_built_in_extension = FALSE;
|
||||||
ecd->next = NULL;
|
ecd->next = NULL;
|
||||||
|
|
|
@ -56,6 +56,7 @@ record marked "to be erased" will not be saved back to the file in due course.
|
||||||
|
|
||||||
=
|
=
|
||||||
typedef struct extension_dictionary_entry {
|
typedef struct extension_dictionary_entry {
|
||||||
|
struct inform_extension *ede_extension;
|
||||||
struct inbuild_work *ede_work; /* author name and title, with hash code */
|
struct inbuild_work *ede_work; /* author name and title, with hash code */
|
||||||
struct text_stream *entry_text; /* text of the dictionary entry */
|
struct text_stream *entry_text; /* text of the dictionary entry */
|
||||||
struct text_stream *type; /* grammatical category, such as "kind" */
|
struct text_stream *type; /* grammatical category, such as "kind" */
|
||||||
|
@ -66,16 +67,18 @@ typedef struct extension_dictionary_entry {
|
||||||
} extension_dictionary_entry;
|
} extension_dictionary_entry;
|
||||||
|
|
||||||
@ =
|
@ =
|
||||||
void ExtensionDictionary::new_ede(text_stream *category,
|
void ExtensionDictionary::new_ede(inform_extension *E, text_stream *category,
|
||||||
text_stream *author, text_stream *title, text_stream *headword) {
|
text_stream *author, text_stream *title, text_stream *headword) {
|
||||||
|
if (E == NULL) internal_error("no E for EDE");
|
||||||
extension_dictionary_entry *ede = CREATE(extension_dictionary_entry);
|
extension_dictionary_entry *ede = CREATE(extension_dictionary_entry);
|
||||||
ede->ede_work = Works::new(extension_genre, title, author);
|
ede->ede_extension = E;
|
||||||
Works::add_to_database(ede->ede_work, DICTIONARY_REFERRED_WDBC);
|
ede->ede_work = E->as_copy->edition->work;
|
||||||
ede->entry_text = Str::duplicate(headword);
|
ede->entry_text = Str::duplicate(headword);
|
||||||
ede->type = Str::duplicate(category);
|
ede->type = Str::duplicate(category);
|
||||||
ede->sorting = Str::new();
|
ede->sorting = Str::new();
|
||||||
if (Str::eq_wide_string(category, L"indexing"))
|
if (Str::eq_wide_string(category, L"indexing"))
|
||||||
@<Change the sort and usage dates, and word count, for the extension work@>;
|
@<Change the sort and usage dates, and word count, for the extension work@>
|
||||||
|
else E->has_historically_been_used = TRUE;
|
||||||
ede->erased = FALSE;
|
ede->erased = FALSE;
|
||||||
ede->next_in_sorted_dictionary = NULL;
|
ede->next_in_sorted_dictionary = NULL;
|
||||||
LOGIF(EXTENSIONS_CENSUS, "Created $d", ede);
|
LOGIF(EXTENSIONS_CENSUS, "Created $d", ede);
|
||||||
|
@ -103,9 +106,9 @@ the extension:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Str::len(sdate) > 0) Works::set_sort_date(ede->ede_work, sdate);
|
if (Str::len(sdate) > 0) Extensions::set_sort_date(ede->ede_extension, sdate);
|
||||||
if (wc > 0) Works::set_word_count(ede->ede_work, wc);
|
if (wc > 0) Extensions::set_word_count(ede->ede_extension, wc);
|
||||||
if (Str::len(udate) > 0) Works::set_usage_date(ede->ede_work, udate);
|
if (Str::len(udate) > 0) Extensions::set_usage_date(ede->ede_extension, udate);
|
||||||
DISCARD_TEXT(sdate);
|
DISCARD_TEXT(sdate);
|
||||||
DISCARD_TEXT(udate);
|
DISCARD_TEXT(udate);
|
||||||
|
|
||||||
|
@ -126,7 +129,7 @@ void ExtensionDictionary::time_stamp(inform_extension *E) {
|
||||||
ascday[the_present->tm_wday], the_present->tm_mday,
|
ascday[the_present->tm_wday], the_present->tm_mday,
|
||||||
ascmon[the_present->tm_mon], the_present->tm_year+1900,
|
ascmon[the_present->tm_mon], the_present->tm_year+1900,
|
||||||
the_present->tm_hour, the_present->tm_min);
|
the_present->tm_hour, the_present->tm_min);
|
||||||
ExtensionDictionary::new_ede(I"indexing",
|
ExtensionDictionary::new_ede(E, I"indexing",
|
||||||
E->as_copy->edition->work->author_name, E->as_copy->edition->work->title, dbuff);
|
E->as_copy->edition->work->author_name, E->as_copy->edition->work->title, dbuff);
|
||||||
DISCARD_TEXT(dbuff);
|
DISCARD_TEXT(dbuff);
|
||||||
}
|
}
|
||||||
|
@ -146,7 +149,7 @@ void ExtensionDictionary::new_entry_from_wording(text_stream *category,
|
||||||
|
|
||||||
void ExtensionDictionary::new_entry(text_stream *category,
|
void ExtensionDictionary::new_entry(text_stream *category,
|
||||||
inform_extension *E, text_stream *headword) {
|
inform_extension *E, text_stream *headword) {
|
||||||
ExtensionDictionary::new_ede(category,
|
ExtensionDictionary::new_ede(E, category,
|
||||||
E->as_copy->edition->work->author_name,
|
E->as_copy->edition->work->author_name,
|
||||||
E->as_copy->edition->work->title, headword);
|
E->as_copy->edition->work->title, headword);
|
||||||
}
|
}
|
||||||
|
@ -206,18 +209,20 @@ void ExtensionDictionary::load_helper(text_stream *line_entry,
|
||||||
TEMPORARY_TEXT(title);
|
TEMPORARY_TEXT(title);
|
||||||
TEMPORARY_TEXT(headword);
|
TEMPORARY_TEXT(headword);
|
||||||
TEMPORARY_TEXT(category);
|
TEMPORARY_TEXT(category);
|
||||||
for (int strokes = 0, pos = 0; strokes <= 4; pos++) {
|
TEMPORARY_TEXT(at);
|
||||||
|
int strokes, pos;
|
||||||
|
for (strokes = 0, pos = 0; strokes <= 5; pos++) {
|
||||||
wchar_t c = Str::get_at(line_entry, pos);
|
wchar_t c = Str::get_at(line_entry, pos);
|
||||||
if (c == 0) break;
|
if (c == 0) break;
|
||||||
if (c == '|') {
|
if (c == '|') {
|
||||||
if (++strokes == 5)
|
if (strokes < 5) strokes++;
|
||||||
ExtensionDictionary::new_ede(category, author, title, headword);
|
|
||||||
} else {
|
} else {
|
||||||
switch(strokes) {
|
switch(strokes) {
|
||||||
case 1: PUT_TO(author, c); break;
|
case 1: PUT_TO(author, c); break;
|
||||||
case 2: PUT_TO(title, c); break;
|
case 2: PUT_TO(title, c); break;
|
||||||
case 3: PUT_TO(headword, c); break;
|
case 3: PUT_TO(headword, c); break;
|
||||||
case 4: PUT_TO(category, c); break;
|
case 4: PUT_TO(category, c); break;
|
||||||
|
case 5: PUT_TO(at, c); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -225,6 +230,21 @@ void ExtensionDictionary::load_helper(text_stream *line_entry,
|
||||||
DISCARD_TEXT(title);
|
DISCARD_TEXT(title);
|
||||||
DISCARD_TEXT(headword);
|
DISCARD_TEXT(headword);
|
||||||
DISCARD_TEXT(category);
|
DISCARD_TEXT(category);
|
||||||
|
DISCARD_TEXT(at);
|
||||||
|
if (Str::len(at) == 0) {
|
||||||
|
inbuild_requirement *req =
|
||||||
|
Requirements::any_version_of(Works::new(extension_genre, title, author));
|
||||||
|
inbuild_search_result *R =
|
||||||
|
Nests::search_for_best(req, Supervisor::shared_nest_list());
|
||||||
|
if (R) ExtensionDictionary::new_ede(ExtensionManager::from_copy(R->copy),
|
||||||
|
category, author, title, headword);
|
||||||
|
} else {
|
||||||
|
filename *F = Filenames::from_text(at);
|
||||||
|
inbuild_copy *C = ExtensionManager::claim_file_as_copy(F);
|
||||||
|
if (C) ExtensionDictionary::new_ede(ExtensionManager::from_copy(C),
|
||||||
|
category, author, title, headword);
|
||||||
|
else PRINT("Hapless! on %S\n", line_entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@h Writing out.
|
@h Writing out.
|
||||||
|
@ -247,9 +267,9 @@ void ExtensionDictionary::write_back(void) {
|
||||||
LOOP_OVER(ede, extension_dictionary_entry)
|
LOOP_OVER(ede, extension_dictionary_entry)
|
||||||
if (ede->erased == FALSE) {
|
if (ede->erased == FALSE) {
|
||||||
LOGIF(EXTENSIONS_CENSUS, "Writing $d", ede);
|
LOGIF(EXTENSIONS_CENSUS, "Writing $d", ede);
|
||||||
WRITE_TO(DICTF, "|%S|%S|%S|%S|\n",
|
WRITE_TO(DICTF, "|%S|%S|%S|%S|%f\n",
|
||||||
ede->ede_work->author_name, ede->ede_work->title,
|
ede->ede_work->author_name, ede->ede_work->title,
|
||||||
ede->entry_text, ede->type);
|
ede->entry_text, ede->type, ede->ede_extension->as_copy->location_if_file);
|
||||||
} else LOGIF(EXTENSIONS_CENSUS, "Suppressing $d\n", ede);
|
} else LOGIF(EXTENSIONS_CENSUS, "Suppressing $d\n", ede);
|
||||||
LOGIF(EXTENSIONS_CENSUS, "Finished writing dictionary file\n");
|
LOGIF(EXTENSIONS_CENSUS, "Finished writing dictionary file\n");
|
||||||
|
|
||||||
|
@ -258,28 +278,9 @@ As noted above, any entry marked |erased| is not written back to the
|
||||||
dictionary file, and effectively that takes it out of the dictionary for
|
dictionary file, and effectively that takes it out of the dictionary for
|
||||||
subsequent runs of Inform.
|
subsequent runs of Inform.
|
||||||
|
|
||||||
The following functions are for the two reasons to mark records in this way:
|
This arises when we are making the dictionary entries for an extension which
|
||||||
first, when an extension has, accordingly to the census, been uninstalled,
|
was used on the current run. Before making new entries, we erase all entries
|
||||||
we remove its dictionary entries.
|
left over from some previous usage of it: it may, after all, have changed.
|
||||||
|
|
||||||
=
|
|
||||||
void ExtensionDictionary::erase_entries_of_uninstalled_extensions(void) {
|
|
||||||
extension_dictionary_entry *ede;
|
|
||||||
LOGIF(EXTENSIONS_CENSUS,
|
|
||||||
"Erasure of dictionary entries for uninstalled extensions\n");
|
|
||||||
LOOP_OVER(ede, extension_dictionary_entry)
|
|
||||||
if ((ede->erased == FALSE) &&
|
|
||||||
(Works::no_times_used_in_context(ede->ede_work, INSTALLED_WDBC) == 0)) {
|
|
||||||
ede->erased = TRUE;
|
|
||||||
LOGIF(EXTENSIONS_CENSUS, "Erased $d", ede);
|
|
||||||
}
|
|
||||||
LOGIF(EXTENSIONS_CENSUS, "Done\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ The second reason arises when we are making the dictionary entries for an
|
|
||||||
extension which was used on the current run. Before making new entries, we
|
|
||||||
erase all entries left over from some previous usage of it: it may, after all,
|
|
||||||
have changed.
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void ExtensionDictionary::erase_entries_concerning(inform_extension *E) {
|
void ExtensionDictionary::erase_entries_concerning(inform_extension *E) {
|
||||||
|
@ -401,16 +402,14 @@ fact, the HTML rendering of the dictionary constructed above.
|
||||||
|
|
||||||
=
|
=
|
||||||
void ExtensionDictionary::write_to_HTML(OUTPUT_STREAM) {
|
void ExtensionDictionary::write_to_HTML(OUTPUT_STREAM) {
|
||||||
int n;
|
int n = ExtensionDictionary::sort_extension_dictionary();
|
||||||
|
if (n > 0) {
|
||||||
int first_letter = 'a';
|
int first_letter = 'a';
|
||||||
extension_dictionary_entry *ede, *previous_ede, *next_ede;
|
for (extension_dictionary_entry *previous_ede = NULL,
|
||||||
ExtensionDictionary::erase_entries_of_uninstalled_extensions();
|
*ede = first_in_sorted_dictionary; ede;
|
||||||
n = ExtensionDictionary::sort_extension_dictionary();
|
|
||||||
if (n <= 0) return;
|
|
||||||
for (previous_ede = NULL, ede = first_in_sorted_dictionary; ede;
|
|
||||||
previous_ede = ede, ede = ede->next_in_sorted_dictionary) {
|
previous_ede = ede, ede = ede->next_in_sorted_dictionary) {
|
||||||
if (Str::eq_wide_string(ede->type, L"indexing")) continue;
|
if (Str::eq_wide_string(ede->type, L"indexing")) continue;
|
||||||
next_ede = ede->next_in_sorted_dictionary;
|
extension_dictionary_entry *next_ede = ede->next_in_sorted_dictionary;
|
||||||
int this_first = Characters::tolower(Str::get_first_char(ede->entry_text));
|
int this_first = Characters::tolower(Str::get_first_char(ede->entry_text));
|
||||||
if (first_letter != this_first) {
|
if (first_letter != this_first) {
|
||||||
HTML_TAG("br"); first_letter = this_first;
|
HTML_TAG("br"); first_letter = this_first;
|
||||||
|
@ -418,6 +417,7 @@ void ExtensionDictionary::write_to_HTML(OUTPUT_STREAM) {
|
||||||
@<Write extension dictionary entry for this headword@>;
|
@<Write extension dictionary entry for this headword@>;
|
||||||
}
|
}
|
||||||
ExtensionDictionary::list_known_extension_clashes(OUT);
|
ExtensionDictionary::list_known_extension_clashes(OUT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ A run of $N$ words which are all the same should appear in tinted type
|
@ A run of $N$ words which are all the same should appear in tinted type
|
||||||
|
|
|
@ -556,16 +556,15 @@ the first and last word and just look at what is in between:
|
||||||
}
|
}
|
||||||
|
|
||||||
@<Print column 4 of the census line@> =
|
@<Print column 4 of the census line@> =
|
||||||
|
inform_extension *E = ExtensionManager::from_copy(ecd->found_as->copy);
|
||||||
HTML_OPEN_WITH("span", "class=\"smaller\"");
|
HTML_OPEN_WITH("span", "class=\"smaller\"");
|
||||||
if ((d == SORT_CE_BY_DATE) || (d == SORT_CE_BY_INSTALL)) {
|
if ((d == SORT_CE_BY_DATE) || (d == SORT_CE_BY_INSTALL)) {
|
||||||
WRITE("%S", Works::get_usage_date(ecd->found_as->copy->edition->work));
|
WRITE("%S", Extensions::get_usage_date(E));
|
||||||
} else if (d == SORT_CE_BY_LENGTH) {
|
} else if (d == SORT_CE_BY_LENGTH) {
|
||||||
if (Works::forgot(ecd->found_as->copy->edition->work))
|
if (Extensions::get_word_count(E) == 0)
|
||||||
WRITE("I did read this, but forgot");
|
WRITE("--");
|
||||||
else if (Works::never(ecd->found_as->copy->edition->work))
|
|
||||||
WRITE("I've never read this");
|
|
||||||
else
|
else
|
||||||
WRITE("%d words", Works::get_word_count(ecd->found_as->copy->edition->work));
|
WRITE("%d words", Extensions::get_word_count(E));
|
||||||
} else {
|
} else {
|
||||||
if (Str::len(ExtensionCensus::ecd_rubric(ecd)) > 0)
|
if (Str::len(ExtensionCensus::ecd_rubric(ecd)) > 0)
|
||||||
WRITE("%S", ExtensionCensus::ecd_rubric(ecd));
|
WRITE("%S", ExtensionCensus::ecd_rubric(ecd));
|
||||||
|
|
|
@ -54,8 +54,6 @@ void ExtensionWebsite::go(inform_project *proj, int force_update) {
|
||||||
@<Write individual pages on individual extensions@>;
|
@<Write individual pages on individual extensions@>;
|
||||||
|
|
||||||
ExtensionDictionary::write_back();
|
ExtensionDictionary::write_back();
|
||||||
|
|
||||||
if (Log::aspect_switched_on(EXTENSIONS_CENSUS_DA)) Works::log_work_hash_table();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ This simply ensures that dates used are updated to today's date for
|
@ This simply ensures that dates used are updated to today's date for
|
||||||
|
@ -65,8 +63,10 @@ documentation as used today until the next run, for obscure timing reasons.
|
||||||
@<Time-stamp extensions used in the project as being last used today@> =
|
@<Time-stamp extensions used in the project as being last used today@> =
|
||||||
if (proj) {
|
if (proj) {
|
||||||
inform_extension *E;
|
inform_extension *E;
|
||||||
LOOP_OVER_LINKED_LIST(E, inform_extension, proj->extensions_included)
|
LOOP_OVER_LINKED_LIST(E, inform_extension, proj->extensions_included) {
|
||||||
ExtensionDictionary::time_stamp(E);
|
ExtensionDictionary::time_stamp(E);
|
||||||
|
E->has_historically_been_used = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@<Write index pages@> =
|
@<Write index pages@> =
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d CORE_MODULE TRUE
|
@d CORE_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e bibliographic_datum_CLASS
|
@e bibliographic_datum_CLASS
|
||||||
@e phrase_CLASS
|
@e phrase_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d IF_MODULE TRUE
|
@d IF_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e action_name_CLASS
|
@e action_name_CLASS
|
||||||
@e auxiliary_file_CLASS
|
@e auxiliary_file_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d INDEX_MODULE TRUE
|
@d INDEX_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e documentation_ref_CLASS
|
@e documentation_ref_CLASS
|
||||||
@e index_page_CLASS
|
@e index_page_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d INFLECTIONS_MODULE TRUE
|
@d INFLECTIONS_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e name_cluster_CLASS
|
@e name_cluster_CLASS
|
||||||
@e individual_name_CLASS
|
@e individual_name_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d KINDS_MODULE TRUE
|
@d KINDS_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e dimensional_rule_CLASS
|
@e dimensional_rule_CLASS
|
||||||
@e kind_CLASS
|
@e kind_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d LINGUISTICS_MODULE TRUE
|
@d LINGUISTICS_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e adjectival_phrase_CLASS
|
@e adjectival_phrase_CLASS
|
||||||
@e adjective_usage_CLASS
|
@e adjective_usage_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d MULTIMEDIA_MODULE TRUE
|
@d MULTIMEDIA_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e blorb_figure_CLASS
|
@e blorb_figure_CLASS
|
||||||
@e blorb_sound_CLASS
|
@e blorb_sound_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d BYTECODE_MODULE TRUE
|
@d BYTECODE_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e inter_tree_CLASS
|
@e inter_tree_CLASS
|
||||||
@e inter_tree_node_CLASS
|
@e inter_tree_node_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d CODEGEN_MODULE TRUE
|
@d CODEGEN_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e I6T_intervention_CLASS
|
@e I6T_intervention_CLASS
|
||||||
@e codegen_pipeline_CLASS
|
@e codegen_pipeline_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d ARCH_MODULE TRUE
|
@d ARCH_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e inter_architecture_CLASS
|
@e inter_architecture_CLASS
|
||||||
@e target_vm_CLASS
|
@e target_vm_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d SYNTAX_MODULE TRUE
|
@d SYNTAX_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e parse_node_CLASS
|
@e parse_node_CLASS
|
||||||
@e parse_node_tree_CLASS
|
@e parse_node_tree_CLASS
|
||||||
|
|
|
@ -8,7 +8,7 @@ which use this module:
|
||||||
|
|
||||||
@d WORDS_MODULE TRUE
|
@d WORDS_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ This module defines the following classes:
|
||||||
|
|
||||||
@e LEXER_TEXT_MREASON
|
@e LEXER_TEXT_MREASON
|
||||||
@e LEXER_WORDS_MREASON
|
@e LEXER_WORDS_MREASON
|
||||||
|
|
Loading…
Reference in a new issue