Removal of FORM option from IE-0004

This commit is contained in:
Graham Nelson 2022-11-07 22:41:51 +00:00
parent d4755b43d8
commit 66596ea987
20 changed files with 71 additions and 60 deletions

View File

@ -1,6 +1,6 @@
# Inform 7
[Version](notes/versioning.md): 10.2.0-beta+6V95 'Krypton' (6 November 2022)
[Version](notes/versioning.md): 10.2.0-beta+6V96 'Krypton' (7 November 2022)
## About Inform

View File

@ -1,3 +1,3 @@
Prerelease: beta
Build Date: 6 November 2022
Build Number: 6V95
Build Date: 7 November 2022
Build Number: 6V96

View File

@ -291,7 +291,7 @@ others, and they are labelled with the "index entry" text.
<span class="plain-syntax"> </span><span class="string-syntax">"AUTH"</span><span class="plain-syntax">, </span><span class="string-syntax">"(c) "</span><span class="plain-syntax">, </span><span class="string-syntax">"Fspc"</span><span class="plain-syntax">, </span><span class="string-syntax">"RelN"</span><span class="plain-syntax">, </span><span class="string-syntax">"IFmd"</span><span class="plain-syntax">, </span><span class="comment-syntax"> miscellaneous identifying data</span>
<span class="plain-syntax"> </span><span class="string-syntax">"JPEG"</span><span class="plain-syntax">, </span><span class="string-syntax">"PNG "</span><span class="plain-syntax">, </span><span class="comment-syntax"> images in different formats</span>
<span class="plain-syntax"> </span><span class="string-syntax">"AIFF"</span><span class="plain-syntax">, </span><span class="string-syntax">"OGGV"</span><span class="plain-syntax">, </span><span class="string-syntax">"MIDI"</span><span class="plain-syntax">, </span><span class="string-syntax">"MOD "</span><span class="plain-syntax">, </span><span class="comment-syntax"> sound effects in different formats</span>
<span class="plain-syntax"> </span><span class="string-syntax">"TEXT"</span><span class="plain-syntax">, </span><span class="string-syntax">"BINA"</span><span class="plain-syntax">, </span><span class="string-syntax">"FORM"</span><span class="plain-syntax">, </span><span class="comment-syntax"> data files in different formats</span>
<span class="plain-syntax"> </span><span class="string-syntax">"TEXT"</span><span class="plain-syntax">, </span><span class="string-syntax">"BINA"</span><span class="plain-syntax">, </span><span class="comment-syntax"> data files in different formats</span>
<span class="plain-syntax"> </span><span class="string-syntax">"ZCOD"</span><span class="plain-syntax">, </span><span class="string-syntax">"GLUL"</span><span class="plain-syntax">, </span><span class="comment-syntax"> story files in different formats</span>
<span class="plain-syntax"> </span><span class="string-syntax">"RDes"</span><span class="plain-syntax">, </span><span class="comment-syntax"> resource descriptions (added to the standard in March 2014)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax"> };</span>
@ -495,8 +495,7 @@ own index and format types:
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="string-syntax">"BINA"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BINA"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="string-syntax">"BINA"</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="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="string-syntax">"TEXT"</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="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FORM"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="string-syntax">"FORM"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="1-be.html#SP2" class="function-link"><span class="function-syntax">BlorbErrors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Invalid data file format: not BINA, TEXT or FORM"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="1-be.html#SP2" class="function-link"><span class="function-syntax">BlorbErrors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Invalid data file format: not BINA or 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">n</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><a href="1-be.html#SP2" class="function-link"><span class="function-syntax">BlorbErrors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Data resource number is less than 1"</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">data_resource</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">data_resource</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">resource_number</span><span class="plain-syntax">);</span>

View File

@ -418,7 +418,27 @@ of a typical desktop of 2001.
<span class="extract"><span class="extract-syntax">picture</span></span> command in the usual way, and must have picture ID 1.
</p>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>Three commands help us to specify locations.
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>Fourth, a command for adding static internal data files:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> data &lt;id&gt; &lt;filename&gt; format &lt;format&gt;</span>
</pre>
<p class="commentary">Tells us to take the given data file and embed it into the blorb so that its
contents can be read whenever the story is played. The "format" here can be
either <span class="extract"><span class="extract-syntax">TEXT</span></span> or <span class="extract"><span class="extract-syntax">BINA</span></span>, meaning plain text or binary data.
</p>
<p class="commentary">Exactly what <span class="extract"><span class="extract-syntax">TEXT</span></span> means will depend on how the story file wants to read
the file, but the convention used by Inform is that it should be UTF-8 plaib
text with Unix line breaks.
</p>
<p class="commentary">Similarly, by <span class="extract"><span class="extract-syntax">BINA</span></span> Inform understands a sequence of big-endian four-byte
data words.
</p>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>Three commands help us to specify locations.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -448,7 +468,7 @@ can be any number of template paths set, and Inblorb checks them in order
of declaration (i.e., most important first).
</p>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>Next we come to commands for specifying what Inblorb should release.
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b>Next we come to commands for specifying what Inblorb should release.
At present it has seven forms of output: Blorb file, solution file, source
text, iFiction record, miscellaneous file, website and interpreter.
</p>
@ -496,7 +516,7 @@ original.
the named file is placed in the release folder.
</p>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b>Finally we come to web pages.
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>Finally we come to web pages.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -544,7 +564,7 @@ specified in the template's "(extras.txt)" are released as well. See
"Writing with Inform" for more.
</p>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>An optional addition for a website is to incorporate a playable-in-browser
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>An optional addition for a website is to incorporate a playable-in-browser
form of the story, by base64-encoding the story file within a Javascript
wrapper, then calling an interpreter such as Parchment.
</p>
@ -579,7 +599,7 @@ interpreter with a Glulx story file, it's Inblorb which issues the error,
not Inform itself.)
</p>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>Finally (really finally this time), three commands to do with the
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b>Finally (really finally this time), three commands to do with the
"status" page, an HTML page written by Inblorb to report back on
what it has done. If requested, this is constructed for reading within
the Inform application &mdash; it is not a valid HTML page in other

View File

@ -373,7 +373,6 @@ to match this width, preserving the aspect ratio.
<span class="definition-keyword">define</span> <span class="constant-syntax">EXTERNAL_BINARY_FILE_NFSMF</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">INTERNAL_TEXT_FILE_NFSMF</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">INTERNAL_BINARY_FILE_NFSMF</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">INTERNAL_FORM_FILE_NFSMF</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the internal files</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
</p>
@ -427,10 +426,6 @@ to match this width, preserving the aspect ratio.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">description</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename_as_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-fe.html#SP1_3_1_1_2" class="named-paragraph-link"><span class="named-paragraph">Offer a binary preview</span><span class="named-paragraph-number">1.3.1.1.2</span></a></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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INTERNAL_FORM_FILE_NFSMF:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">description</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename_as_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-fe.html#SP1_3_1_1_2" class="named-paragraph-link"><span class="named-paragraph">Offer a binary preview</span><span class="named-paragraph-number">1.3.1.1.2</span></a></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="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::italic</span><span class="plain-syntax">(</span><span class="identifier-syntax">description</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Fi.MissingInternalFile"</span><span class="plain-syntax">);</span>
@ -479,7 +474,7 @@ to match this width, preserving the aspect ratio.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">preview</span><span class="plain-syntax">, </span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-fe.html#SP1_3_1_1">&#167;1.3.1.1</a> (twice).</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="3-fe.html#SP1_3_1_1">&#167;1.3.1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3_1_2" class="paragraph-anchor"></a><b>&#167;1.3.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Render a table row for the internal file</span><span class="named-paragraph-number">1.3.1.2</span></span><span class="comment-syntax"> =</span>
</p>
@ -496,7 +491,6 @@ to match this width, preserving the aspect ratio.
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">format</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">INTERNAL_TEXT_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(text) "</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">INTERNAL_BINARY_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(binary) "</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">INTERNAL_FORM_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(form) "</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Metadata::required_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>

View File

@ -125,7 +125,6 @@ function togglePopup(material_id) {
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;definite-article&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-sentence-subject&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { pass 2 }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">data/binary</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { INTERNAL_BINARY_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">text</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { INTERNAL_TEXT_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">form</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { INTERNAL_FORM_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">text</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { EXTERNAL_TEXT_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">binary</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { EXTERNAL_BINARY_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;external-file-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { EXTERNAL_TEXT_FILE_NFSMF, -, &lt;&lt;ownership&gt;&gt; = R[1] }</span>
@ -218,7 +217,6 @@ has been found to create a file:
<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">INTERNAL_TEXT_FILE_NFSMF:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INTERNAL_BINARY_FILE_NFSMF:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INTERNAL_FORM_FILE_NFSMF:</span>
<span class="plain-syntax"> </span><a href="2-if.html#SP5" class="function-link"><span class="function-syntax">InternalFiles::files_create</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">FN</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">MULTIMEDIA_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created internal file &lt;%W&gt; = filename '%N'\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">FN</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -242,8 +240,7 @@ has been found to create a file:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">&gt;24) </span><span class="identifier-syntax">bad_filename</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">isalpha</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="plain-syntax">])) || (</span><span class="identifier-syntax">Characters::isdigit</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="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">format</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTERNAL_TEXT_FILE_NFSMF</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">format</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTERNAL_BINARY_FILE_NFSMF</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">format</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTERNAL_FORM_FILE_NFSMF</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">format</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTERNAL_BINARY_FILE_NFSMF</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">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="character-syntax">'.'</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="plain-syntax">] == </span><span class="character-syntax">'_'</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="plain-syntax">] == </span><span class="character-syntax">' '</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Objected to character %c\n"</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="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bad_filename</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>

View File

@ -103,7 +103,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">unextended_filename</span><span class="plain-syntax">; </span><span class="comment-syntax"> word number of text like </span><span class="extract"><span class="extract-syntax">"ice extents.usgs"</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local_filename</span><span class="plain-syntax">; </span><span class="comment-syntax"> of where this file is, in Materials directory</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">inf_identifier</span><span class="plain-syntax">; </span><span class="comment-syntax"> an Inter identifier</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">file_format</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">INTERNAL_TEXT_FILE_NFSMF</span></span><span class="comment-syntax">, </span><span class="extract"><span class="extract-syntax">INTERNAL_BINARY_FILE_NFSMF</span></span><span class="comment-syntax"> or </span><span class="extract"><span class="extract-syntax">INTERNAL_FORM_FILE_NFSMF</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">file_format</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">INTERNAL_TEXT_FILE_NFSMF</span></span><span class="comment-syntax"> or </span><span class="extract"><span class="extract-syntax">INTERNAL_BINARY_FILE_NFSMF</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</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">where_created</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">resource_id</span><span class="plain-syntax">;</span>
@ -191,7 +191,6 @@ created from <span class="extract"><span class="extract-syntax">Figures.w</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ifd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_format</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">INTERNAL_TEXT_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"TEXT"</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">INTERNAL_BINARY_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"BINA"</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">INTERNAL_FORM_FILE_NFSMF:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"FORM"</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="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>

View File

@ -195,7 +195,7 @@ char *legal_Blorb_chunk_types[] = {
"AUTH", "(c) ", "Fspc", "RelN", "IFmd", /* miscellaneous identifying data */
"JPEG", "PNG ", /* images in different formats */
"AIFF", "OGGV", "MIDI", "MOD ", /* sound effects in different formats */
"TEXT", "BINA", "FORM", /* data files in different formats */
"TEXT", "BINA", /* data files in different formats */
"ZCOD", "GLUL", /* story files in different formats */
"RDes", /* resource descriptions (added to the standard in March 2014) */
NULL };
@ -386,8 +386,7 @@ void Writer::data_chunk(int n, filename *fn, text_stream *format) {
char *type = "BINA";
if (Str::eq_insensitive(format, I"BINA")) type = "BINA";
else if (Str::eq_insensitive(format, I"TEXT")) type = "TEXT";
else if (Str::eq_insensitive(format, I"FORM")) type = "FORM";
else BlorbErrors::fatal("Invalid data file format: not BINA, TEXT or FORM");
else BlorbErrors::fatal("Invalid data file format: not BINA or TEXT");
if (n < 1) BlorbErrors::fatal("Data resource number is less than 1");
if (data_resource == NULL) data_resource = NEW_LINKED_LIST(resource_number);

View File

@ -305,6 +305,21 @@ of a typical desktop of 2001.
specifies that this is the cover art; it must also be declared with a
|picture| command in the usual way, and must have picture ID 1.
@ Fourth, a command for adding static internal data files:
= (text as Blurb)
data <id> <filename> format <format>
=
Tells us to take the given data file and embed it into the blorb so that its
contents can be read whenever the story is played. The "format" here can be
either |TEXT| or |BINA|, meaning plain text or binary data.
Exactly what |TEXT| means will depend on how the story file wants to read
the file, but the convention used by Inform is that it should be UTF-8 plaib
text with Unix line breaks.
Similarly, by |BINA| Inform understands a sequence of big-endian four-byte
data words.
@ Three commands help us to specify locations.
= (text as Blurb)
project folder <filename>

View File

@ -7844,7 +7844,7 @@
<s-adjective-list> hits 1442/27608 nti 27 constraint (none) extremes [1, infinity)
English:
not <indefinite-article> <s-adjective-list-unarticled>
(hits 0/2994) constraint DS = {27} extremes [3, infinity)
(hits 0/2990) constraint DS = {27} extremes [3, infinity)
<indefinite-article> <s-adjective-list-unarticled>
(hits 0/6957) constraint (none) extremes [2, infinity)
<s-adjective-list-unarticled>
@ -10042,8 +10042,6 @@
(hits 0/239) constraint DS = {26, 27} extremes [4, infinity)
internal text <external-file-name>
(hits 0/239) constraint DS = {26, 27} extremes [4, infinity)
internal form <external-file-name>
(hits 0/239) constraint DS = {26, 27} extremes [4, infinity)
text <external-file-name>
(hits 0/304) constraint DS = {26, 27} extremes [3, infinity)
binary <external-file-name>

View File

@ -1,6 +1,6 @@
Total memory consumption was 123401K = 121 MB
---- was used for 2055476 objects, in 366320 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2055472 objects, in 366316 frames in 0 x 800K = 0K = 0 MB:
33.0% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
20.6% text_stream_array 4638 x 100 = 463800 objects, 26121216 bytes
@ -27,8 +27,8 @@ Total memory consumption was 123401K = 121 MB
0.8% id_body 946 objects, 1082224 bytes
0.7% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3121 objects, 973752 bytes
0.7% production 3957 objects, 918024 bytes
0.7% ptoken 8590 objects, 893360 bytes
0.7% production 3956 objects, 917792 bytes
0.7% ptoken 8587 objects, 893048 bytes
0.6% grammatical_usage 3641 objects, 873840 bytes
0.6% inter_schema_node 9056 objects, 869376 bytes
0.6% individual_form 2571 objects, 863856 bytes
@ -265,5 +265,5 @@ Total memory consumption was 123401K = 121 MB
---- code generation workspace for objects 3480 bytes in 19 claims
0.2% emitter array storage 280544 bytes in 2001 claims
-147.-7% was overhead - -186760664 bytes = -182383K = -178 MB
-147.-7% was overhead - -186760120 bytes = -182382K = -178 MB

View File

@ -1,11 +1,11 @@
100.0% in inform7 run
70.8% in compilation to Inter
49.8% in //Sequence::undertake_queued_tasks//
70.0% in compilation to Inter
49.4% in //Sequence::undertake_queued_tasks//
4.8% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
2.1% in //RTPhrasebook::compile_entries//
1.9% in //RTPhrasebook::compile_entries//
1.7% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile//
1.3% in //RTKindConstructors::compile//
1.1% in //Sequence::lint_inter//
0.5% in //MajorNodes::pass_2//
0.5% in //Sequence::undertake_queued_tasks//
@ -18,16 +18,16 @@
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.5% not specifically accounted for
25.9% in running Inter pipeline
10.1% in step 14/15: generate inform6 -> auto.inf
5.6% in step 5/15: load-binary-kits
5.2% in step 6/15: make-synoptic-module
26.8% in running Inter pipeline
10.3% in step 14/15: generate inform6 -> auto.inf
6.0% in step 5/15: load-binary-kits
5.6% in step 6/15: make-synoptic-module
1.7% in step 9/15: make-identifiers-unique
0.3% in step 12/15: eliminate-redundant-operations
0.3% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
0.1% in step 11/15: eliminate-redundant-labels
1.3% not specifically accounted for
1.4% not specifically accounted for
2.5% in supervisor
0.6% not specifically accounted for

View File

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "BasicInformExtrasKit",
"version": "10.2.0-beta+6V95"
"version": "10.2.0-beta+6V96"
},
"kit-details": {
"has-priority": 1

View File

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "BasicInformKit",
"version": "10.2.0-beta+6V95"
"version": "10.2.0-beta+6V96"
},
"needs": [ {
"unless": {

View File

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "CommandParserKit",
"version": "10.2.0-beta+6V95"
"version": "10.2.0-beta+6V96"
},
"needs": [ {
"need": {

View File

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "EnglishLanguageKit",
"version": "10.2.0-beta+6V95"
"version": "10.2.0-beta+6V96"
},
"needs": [ {
"need": {

View File

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "WorldModelKit",
"version": "10.2.0-beta+6V95"
"version": "10.2.0-beta+6V96"
},
"needs": [ {
"need": {

View File

@ -61,7 +61,6 @@ int ExternalFiles::new_file_SMF(int task, parse_node *V, wording *NPs) {
<definite-article> <external-file-sentence-subject> | ==> { pass 2 }
internal data/binary <external-file-name> | ==> { INTERNAL_BINARY_FILE_NFSMF, -, <<ownership>> = R[1] }
internal text <external-file-name> | ==> { INTERNAL_TEXT_FILE_NFSMF, -, <<ownership>> = R[1] }
internal form <external-file-name> | ==> { INTERNAL_FORM_FILE_NFSMF, -, <<ownership>> = R[1] }
text <external-file-name> | ==> { EXTERNAL_TEXT_FILE_NFSMF, -, <<ownership>> = R[1] }
binary <external-file-name> | ==> { EXTERNAL_BINARY_FILE_NFSMF, -, <<ownership>> = R[1] }
<external-file-name> ==> { EXTERNAL_TEXT_FILE_NFSMF, -, <<ownership>> = R[1] }
@ -142,7 +141,6 @@ void ExternalFiles::register_file(wording W, wording FN) {
}
case INTERNAL_TEXT_FILE_NFSMF:
case INTERNAL_BINARY_FILE_NFSMF:
case INTERNAL_FORM_FILE_NFSMF:
InternalFiles::files_create(<<r>>, NW, FN);
LOGIF(MULTIMEDIA_CREATIONS, "Created internal file <%W> = filename '%N'\n", NW, FN);
break;
@ -162,8 +160,7 @@ void ExternalFiles::register_file(wording W, wording FN) {
if (i>24) bad_filename = TRUE;
if ((isalpha(p[i])) || (Characters::isdigit(p[i]))) continue;
if ((format == INTERNAL_TEXT_FILE_NFSMF) ||
(format == INTERNAL_BINARY_FILE_NFSMF) ||
(format == INTERNAL_FORM_FILE_NFSMF))
(format == INTERNAL_BINARY_FILE_NFSMF))
if ((p[i] == '.') || (p[i] == '_') || (p[i] == ' ')) continue;
LOG("Objected to character %c\n", p[i]);
bad_filename = TRUE;

View File

@ -42,7 +42,7 @@ typedef struct internal_files_data {
int unextended_filename; /* word number of text like |"ice extents.usgs"| */
struct filename *local_filename; /* of where this file is, in Materials directory */
struct text_stream *inf_identifier; /* an Inter identifier */
int file_format; /* |INTERNAL_TEXT_FILE_NFSMF|, |INTERNAL_BINARY_FILE_NFSMF| or |INTERNAL_FORM_FILE_NFSMF| */
int file_format; /* |INTERNAL_TEXT_FILE_NFSMF| or |INTERNAL_BINARY_FILE_NFSMF| */
struct instance *as_instance;
struct parse_node *where_created;
int resource_id;
@ -127,7 +127,6 @@ void InternalFiles::write_blurb_commands(OUTPUT_STREAM) {
switch (ifd->file_format) {
case INTERNAL_TEXT_FILE_NFSMF: WRITE("TEXT"); break;
case INTERNAL_BINARY_FILE_NFSMF: WRITE("BINA"); break;
case INTERNAL_FORM_FILE_NFSMF: WRITE("FORM"); break;
}
WRITE("\n");
}

View File

@ -277,7 +277,6 @@ to match this width, preserving the aspect ratio.
@d EXTERNAL_BINARY_FILE_NFSMF 1
@d INTERNAL_TEXT_FILE_NFSMF 2
@d INTERNAL_BINARY_FILE_NFSMF 3
@d INTERNAL_FORM_FILE_NFSMF 4
@<Index the internal files@> =
HTML_OPEN("p");
@ -320,10 +319,6 @@ to match this width, preserving the aspect ratio.
WRITE_TO(description, "%S", filename_as_text);
@<Offer a binary preview@>;
break;
case INTERNAL_FORM_FILE_NFSMF:
WRITE_TO(description, "%S", filename_as_text);
@<Offer a binary preview@>;
break;
}
} else {
Localisation::italic(description, LD, I"Index.Elements.Fi.MissingInternalFile");
@ -377,7 +372,6 @@ to match this width, preserving the aspect ratio.
switch (format) {
case INTERNAL_TEXT_FILE_NFSMF: WRITE("(text) "); break;
case INTERNAL_BINARY_FILE_NFSMF: WRITE("(binary) "); break;
case INTERNAL_FORM_FILE_NFSMF: WRITE("(form) "); break;
}
WRITE("%S", Metadata::required_textual(pack, I"^name"));
IndexUtilities::link_package(OUT, pack);