Added module list to index pages in weaves

This commit is contained in:
Graham Nelson 2020-03-25 23:42:55 +00:00
parent f142f3fb62
commit a5cddf82a8
16 changed files with 843 additions and 716 deletions

View file

@ -42,7 +42,7 @@ main web -- which can be tangled, and results in an actual program -- is
internally named |"(main)"|, a name which the user will never see.
=
module *Modules::main_module(web *W) {
module *Modules::create_main_module(web *W) {
return Modules::new(I"(main)", W->path_to_web, READING_WEB_MOM);
}

View file

@ -65,7 +65,7 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I, int verbos
W->analysed = FALSE;
W->as_ebook = NULL;
W->redirect_weaves_to = redirection;
W->as_module = Modules::main_module(W);
W->as_module = Modules::create_main_module(W);
W->default_syntax = default_inweb_syntax;
W->version_number = VersionNumbers::null();
Bibliographic::initialise_data(W);
@ -438,7 +438,7 @@ we like a spoonful of syntactic sugar on our porridge, that's why.
Reader::add_imported_header(RS->current_web, HF);
this_is_a_chapter = FALSE;
} else if (Regexp::match(&mr, line, L"Import: (%c+)")) {
if (RS->parsing) {
if (RS->import_from) {
pathname *imported = Modules::find(RS->current_web, RS->import_from, mr.exp[0]);
if (imported == NULL) {
TEMPORARY_TEXT(err);
@ -446,10 +446,12 @@ we like a spoonful of syntactic sugar on our porridge, that's why.
Errors::in_text_file_S(err, tfp);
DISCARD_TEXT(err);
} else {
int save_syntax = RS->current_web->default_syntax;
Reader::read_contents_page_from(RS->current_web, RS->import_from,
RS->scan_verbosely, RS->parsing, imported);
RS->current_web->default_syntax = save_syntax;
if (RS->parsing) {
int save_syntax = RS->current_web->default_syntax;
Reader::read_contents_page_from(RS->current_web, RS->import_from,
RS->scan_verbosely, RS->parsing, imported);
RS->current_web->default_syntax = save_syntax;
}
}
}
this_is_a_chapter = FALSE;

View file

@ -456,6 +456,8 @@ its square-bracketed parts.
cp->restrict_to_range, cp->nav_pattern, cp->nav_file);
} else if (Regexp::match(&mr, varname, L"Breadcrumbs")) {
HTMLFormat::drop_initial_breadcrumbs(substituted, cp->crumbs, cp->docs_mode);
} else if (Regexp::match(&mr, varname, L"Modules")) {
@<Substitute the list of imported modules@>;
} else if (Regexp::match(&mr, varname, L"Chapter (%c+)")) {
text_stream *detail = mr.exp[0];
chapter *C = CONTENT_IN_ITEM(
@ -548,6 +550,33 @@ its square-bracketed parts.
WRITE_TO(substituted, "%S for %S", varname, S->sect_title);
}
@<Substitute the list of imported modules@> =
module *M = W->as_module;
int L = LinkedLists::len(M->dependencies);
if (L > 0) {
WRITE_TO(substituted,
"<p class=\"purpose\">Together with the following imported module%s:\n",
(L==1)?"":"s");
WRITE_TO(substituted, "<ul class=\"chapterlist\">\n");
Indexer::list_module(substituted, W->as_module, FALSE);
WRITE_TO(substituted, "</ul>\n");
}
@ =
void Indexer::list_module(OUTPUT_STREAM, module *M, int list_this) {
if (list_this) {
WRITE("<li><p>%S - ", M->module_name);
TEMPORARY_TEXT(url);
WRITE_TO(url, "%p", M->module_location);
Readme::write_var(OUT, url, I"Purpose");
DISCARD_TEXT(url);
WRITE("</p></li>");
}
module *N;
LOOP_OVER_LINKED_LIST(N, module, M->dependencies)
Indexer::list_module(OUT, N, TRUE);
}
@h Transcribing CSS.
=

View file

@ -217,7 +217,7 @@ void Readme::expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
else {
TEMPORARY_TEXT(program);
Readme::expand_material(ws, program, ws->stack_frame->pars[0], tfp);
Readme::write_var(ws, OUT, program, I"Version Number", tfp);
Readme::write_var(OUT, program, I"Version Number");
DISCARD_TEXT(program);
}
@ -227,7 +227,7 @@ void Readme::expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
else {
TEMPORARY_TEXT(program);
Readme::expand_material(ws, program, ws->stack_frame->pars[0], tfp);
Readme::write_var(ws, OUT, program, I"Purpose", tfp);
Readme::write_var(OUT, program, I"Purpose");
DISCARD_TEXT(program);
}
@ -239,7 +239,7 @@ void Readme::expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
TEMPORARY_TEXT(bibv);
Readme::expand_material(ws, program, ws->stack_frame->pars[0], tfp);
Readme::expand_material(ws, bibv, ws->stack_frame->pars[1], tfp);
Readme::write_var(ws, OUT, program, bibv, tfp);
Readme::write_var(OUT, program, bibv);
DISCARD_TEXT(program);
DISCARD_TEXT(bibv);
}
@ -260,8 +260,7 @@ typedef struct writeme_asset {
MEMORY_MANAGEMENT
} writeme_asset;
void Readme::write_var(write_state *ws, text_stream *OUT,
text_stream *program, text_stream *datum, text_file_position *tfp) {
void Readme::write_var(text_stream *OUT, text_stream *program, text_stream *datum) {
writeme_asset *A = Readme::find_asset(program);
if (A->if_web) WRITE("%S", Bibliographic::get_datum(A->if_web, datum));
else if (Str::eq(datum, I"Build Date")) WRITE("%S", A->date);

View file

@ -31,6 +31,7 @@
[[End Repeat]]
</ul>
<hr>
[[Modules]]
</main>
</body>
</html>

View file

@ -23,6 +23,7 @@
[[End Repeat]]
</ul>
<hr>
[[Modules]]
</body>
</html>

View file

@ -1,6 +1,6 @@
# Inweb 7
v7-alpha.1+1A01 'Escape to Danger' (23 March 2020)
v7-alpha.1+1A02 'Escape to Danger' (25 March 2020)
## About Inweb

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 23 March 2020
Build Number: 1A01
Build Date: 25 March 2020
Build Number: 1A02

View file

@ -197,6 +197,7 @@
</li>
</ul>
<hr>
</main>
</body>
</html>

View file

@ -35,6 +35,10 @@
</li>
</ul>
<hr>
<p class="purpose">Together with the following imported module:
<ul class="chapterlist">
<li><p>foundation - A library of common code used by all of the Inform tools.</p></li></ul>
</body>
</html>

View file

@ -55,7 +55,7 @@ means.
<p class="inwebparagraph"></p>
<p class="endnote">The structure module is accessed in 6/mkf and here.</p>
<p class="endnote">The structure module is accessed in 3/ti, 6/mkf and here.</p>
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. </b></p>
@ -87,14 +87,14 @@ internally named <code class="display"><span class="extract">"(main)"</span></co
<pre class="display">
<span class="reserved">module</span><span class="plain"> *</span><span class="functiontext">Modules::main_module</span><span class="plain">(</span><span class="reserved">web</span><span class="plain"> *</span><span class="identifier">W</span><span class="plain">) {</span>
<span class="reserved">module</span><span class="plain"> *</span><span class="functiontext">Modules::create_main_module</span><span class="plain">(</span><span class="reserved">web</span><span class="plain"> *</span><span class="identifier">W</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Modules::new</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"(main)"</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;path_to_web</span><span class="plain">, </span><span class="constant">READING_WEB_MOM</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Modules::main_module is used in 2/tr (<a href="2-tr.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Modules::create_main_module is used in 2/tr (<a href="2-tr.html#SP2">&#167;2</a>).</p>
<p class="inwebparagraph"><a id="SP4"></a><b>&#167;4. Dependencies. </b>When web A imports module B, we will say that A is dependent on B. A web
can import multiple modules, so there can a list of dependencies. These are

View file

@ -101,7 +101,7 @@ multi-chapter web.
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;analysed</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;as_ebook</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;redirect_weaves_to</span><span class="plain"> = </span><span class="identifier">redirection</span><span class="plain">;</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;as_module</span><span class="plain"> = </span><span class="functiontext">Modules::main_module</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;as_module</span><span class="plain"> = </span><span class="functiontext">Modules::create_main_module</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;default_syntax</span><span class="plain"> = </span><span class="identifier">default_inweb_syntax</span><span class="plain">;</span>
<span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;version_number</span><span class="plain"> = </span><span class="functiontext">VersionNumbers::null</span><span class="plain">();</span>
<span class="functiontext">Bibliographic::initialise_data</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
@ -643,7 +643,7 @@ we like a spoonful of syntactic sugar on our porridge, that's why.
<span class="functiontext">Reader::add_imported_header</span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">, </span><span class="identifier">HF</span><span class="plain">);</span>
<span class="identifier">this_is_a_chapter</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Regexp::match</span><span class="plain">(&amp;</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Import: (%c+)"</span><span class="plain">)) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;parsing</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;import_from</span><span class="plain">) {</span>
<span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">imported</span><span class="plain"> = </span><span class="functiontext">Modules::find</span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">, </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;import_from</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">imported</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">err</span><span class="plain">);</span>
@ -651,10 +651,12 @@ we like a spoonful of syntactic sugar on our porridge, that's why.
<span class="functiontext">Errors::in_text_file_S</span><span class="plain">(</span><span class="identifier">err</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">err</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">save_syntax</span><span class="plain"> = </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">-</span><span class="element">&gt;default_syntax</span><span class="plain">;</span>
<span class="functiontext">Reader::read_contents_page_from</span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">, </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;import_from</span><span class="plain">,</span>
<span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;scan_verbosely</span><span class="plain">, </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;parsing</span><span class="plain">, </span><span class="identifier">imported</span><span class="plain">);</span>
<span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">-</span><span class="element">&gt;default_syntax</span><span class="plain"> = </span><span class="identifier">save_syntax</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;parsing</span><span class="plain">) {</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">save_syntax</span><span class="plain"> = </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">-</span><span class="element">&gt;default_syntax</span><span class="plain">;</span>
<span class="functiontext">Reader::read_contents_page_from</span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">, </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;import_from</span><span class="plain">,</span>
<span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;scan_verbosely</span><span class="plain">, </span><span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;parsing</span><span class="plain">, </span><span class="identifier">imported</span><span class="plain">);</span>
<span class="identifier">RS</span><span class="plain">-</span><span class="element">&gt;current_web</span><span class="plain">-</span><span class="element">&gt;default_syntax</span><span class="plain"> = </span><span class="identifier">save_syntax</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="identifier">this_is_a_chapter</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>

View file

@ -26,7 +26,7 @@
<!--Weave of '3/ti' generated by 7-->
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Indexer</b></li></ul><p class="purpose">To construct indexes of the material woven, following a template.</p>
<ul class="toc"><li><a href="#SP1">&#167;1. Cover sheets</a></li><li><a href="#SP4">&#167;4. Full index pages</a></li><li><a href="#SP5">&#167;5. Running the interpreter</a></li><li><a href="#SP5_2">&#167;5.2. File handling</a></li><li><a href="#SP5_1_1">&#167;5.1.1. The repeat stack and loops</a></li><li><a href="#SP5_1_8">&#167;5.1.8. Variable substitutions</a></li><li><a href="#SP6">&#167;6. Transcribing CSS</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="#SP1">&#167;1. Cover sheets</a></li><li><a href="#SP4">&#167;4. Full index pages</a></li><li><a href="#SP5">&#167;5. Running the interpreter</a></li><li><a href="#SP5_2">&#167;5.2. File handling</a></li><li><a href="#SP5_1_1">&#167;5.1.1. The repeat stack and loops</a></li><li><a href="#SP5_1_8">&#167;5.1.8. Variable substitutions</a></li><li><a href="#SP7">&#167;7. Transcribing CSS</a></li></ul><hr class="tocbar">
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. Cover sheets. </b>The indexer offers two basic services. One, which is much simpler, makes
cover sheets, and has only simple escapes (except that it has the ability
@ -710,6 +710,8 @@ its square-bracketed parts.
<span class="identifier">cp</span><span class="plain">-</span><span class="element">&gt;restrict_to_range</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-</span><span class="element">&gt;nav_pattern</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-</span><span class="element">&gt;nav_file</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Regexp::match</span><span class="plain">(&amp;</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Breadcrumbs"</span><span class="plain">)) {</span>
<span class="functiontext">HTMLFormat::drop_initial_breadcrumbs</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-</span><span class="element">&gt;crumbs</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-</span><span class="element">&gt;docs_mode</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Regexp::match</span><span class="plain">(&amp;</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Modules"</span><span class="plain">)) {</span>
&lt;<span class="cwebmacro">Substitute the list of imported modules</span> <span class="cwebmacronumber">5.1.8.5</span>&gt;<span class="plain">;</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Regexp::match</span><span class="plain">(&amp;</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Chapter (%c+)"</span><span class="plain">)) {</span>
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">detail</span><span class="plain"> = </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0];</span>
<span class="reserved">chapter</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain"> = </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span>
@ -855,7 +857,52 @@ its square-bracketed parts.
<p class="endnote">This code is used in <a href="#SP5_1_8">&#167;5.1.8</a>.</p>
<p class="inwebparagraph"><a id="SP6"></a><b>&#167;6. Transcribing CSS. </b></p>
<p class="inwebparagraph"><a id="SP5_1_8_5"></a><b>&#167;5.1.8.5. </b><code class="display">
&lt;<span class="cwebmacrodefn">Substitute the list of imported modules</span> <span class="cwebmacronumber">5.1.8.5</span>&gt; =
</code></p>
<pre class="displaydefn">
<span class="reserved">module</span><span class="plain"> *</span><span class="identifier">M</span><span class="plain"> = </span><span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;as_module</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">L</span><span class="plain"> = </span><span class="functiontext">LinkedLists::len</span><span class="plain">(</span><span class="identifier">M</span><span class="plain">-</span><span class="element">&gt;dependencies</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain"> &gt; 0) {</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">,</span>
<span class="string">"&lt;p class=\</span><span class="plain">"</span><span class="string">purpose\</span><span class="plain">"</span><span class="string">&gt;Together with the following imported module%s:\</span><span class="plain">n</span><span class="string">"</span><span class="plain">,</span>
<span class="plain">(</span><span class="identifier">L</span><span class="plain">==1)?</span><span class="string">""</span><span class="plain">:</span><span class="string">"s"</span><span class="plain">);</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"&lt;ul class=\</span><span class="plain">"</span><span class="string">chapterlist\</span><span class="plain">"</span><span class="string">&gt;\</span><span class="plain">n</span><span class="string">"</span><span class="plain">);</span>
<span class="functiontext">Indexer::list_module</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-</span><span class="element">&gt;as_module</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"&lt;/ul&gt;\</span><span class="plain">n</span><span class="string">"</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP5_1_8">&#167;5.1.8</a>.</p>
<p class="inwebparagraph"><a id="SP6"></a><b>&#167;6. </b></p>
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::list_module</span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">module</span><span class="plain"> *</span><span class="identifier">M</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">list_this</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">list_this</span><span class="plain">) {</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;li&gt;&lt;p&gt;%S - "</span><span class="plain">, </span><span class="identifier">M</span><span class="plain">-</span><span class="element">&gt;module_name</span><span class="plain">);</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">);</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="string">"%p"</span><span class="plain">, </span><span class="identifier">M</span><span class="plain">-</span><span class="element">&gt;module_location</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Purpose"</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">);</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;/p&gt;&lt;/li&gt;"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">module</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="reserved">module</span><span class="plain">, </span><span class="identifier">M</span><span class="plain">-</span><span class="element">&gt;dependencies</span><span class="plain">)</span>
<span class="functiontext">Indexer::list_module</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Indexer::list_module is used in <a href="#SP5_1_8_5">&#167;5.1.8.5</a>.</p>
<p class="inwebparagraph"><a id="SP7"></a><b>&#167;7. Transcribing CSS. </b></p>
<pre class="display">

View file

@ -315,7 +315,7 @@ values <code class="display"><span class="extract">5</span></code> and <code cla
<span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="functiontext">Readme::expand_material</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">ws</span><span class="plain">-</span><span class="element">&gt;stack_frame</span><span class="plain">-</span><span class="element">&gt;pars</span><span class="plain">[0], </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Version Number"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Version Number"</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -335,7 +335,7 @@ values <code class="display"><span class="extract">5</span></code> and <code cla
<span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="functiontext">Readme::expand_material</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">ws</span><span class="plain">-</span><span class="element">&gt;stack_frame</span><span class="plain">-</span><span class="element">&gt;pars</span><span class="plain">[0], </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Purpose"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Purpose"</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -357,7 +357,7 @@ values <code class="display"><span class="extract">5</span></code> and <code cla
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">bibv</span><span class="plain">);</span>
<span class="functiontext">Readme::expand_material</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">ws</span><span class="plain">-</span><span class="element">&gt;stack_frame</span><span class="plain">-</span><span class="element">&gt;pars</span><span class="plain">[0], </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::expand_material</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">bibv</span><span class="plain">, </span><span class="identifier">ws</span><span class="plain">-</span><span class="element">&gt;stack_frame</span><span class="plain">-</span><span class="element">&gt;pars</span><span class="plain">[1], </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">ws</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">bibv</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
<span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">program</span><span class="plain">, </span><span class="identifier">bibv</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">bibv</span><span class="plain">);</span>
<span class="plain">}</span>
@ -385,8 +385,7 @@ assume that the version complies with any format).
<span class="constant">MEMORY_MANAGEMENT</span>
<span class="plain">} </span><span class="reserved">writeme_asset</span><span class="plain">;</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="reserved">write_state</span><span class="plain"> *</span><span class="identifier">ws</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">program</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">datum</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Readme::write_var</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">program</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">datum</span><span class="plain">) {</span>
<span class="reserved">writeme_asset</span><span class="plain"> *</span><span class="identifier">A</span><span class="plain"> = </span><span class="functiontext">Readme::find_asset</span><span class="plain">(</span><span class="identifier">program</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">A</span><span class="plain">-</span><span class="element">&gt;if_web</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">A</span><span class="plain">-</span><span class="element">&gt;if_web</span><span class="plain">, </span><span class="identifier">datum</span><span class="plain">));</span>
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Str::eq</span><span class="plain">(</span><span class="identifier">datum</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Build Date"</span><span class="plain">)) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">A</span><span class="plain">-</span><span class="element">&gt;date</span><span class="plain">);</span>
@ -396,7 +395,7 @@ assume that the version complies with any format).
<p class="inwebparagraph"></p>
<p class="endnote">The function Readme::write_var is used in <a href="#SP7_1">&#167;7.1</a>, <a href="#SP7_2">&#167;7.2</a>, <a href="#SP7_3">&#167;7.3</a>.</p>
<p class="endnote">The function Readme::write_var is used in <a href="#SP7_1">&#167;7.1</a>, <a href="#SP7_2">&#167;7.2</a>, <a href="#SP7_3">&#167;7.3</a>, 3/ti (<a href="3-ti.html#SP6">&#167;6</a>).</p>
<p class="endnote">The structure writeme_asset is private to this section.</p>

View file

@ -217,6 +217,10 @@
</li>
</ul>
<hr>
<p class="purpose">Together with the following imported module:
<ul class="chapterlist">
<li><p>foundation - A library of common code used by all of the Inform tools.</p></li></ul>
</main>
</body>
</html>