inweb-bootstrap/docs/inweb/1-cnf.html

516 lines
123 KiB
HTML
Raw Normal View History

2019-02-04 22:26:45 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
2020-04-08 22:41:00 +00:00
<title>Configuration</title>
2020-04-23 22:23:44 +00:00
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
2019-02-04 22:26:45 +00:00
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
2020-04-20 22:26:08 +00:00
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-30 22:36:38 +00:00
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-25 10:33:39 +00:00
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-20 22:26:08 +00:00
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-21 16:55:17 +00:00
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-23 22:23:44 +00:00
2019-02-04 22:26:45 +00:00
</head>
2020-04-25 10:33:39 +00:00
<body class="commentary-font">
<nav role="navigation">
2020-04-13 16:06:45 +00:00
<h1><a href="../index.html">
2020-04-20 22:26:08 +00:00
<img src="../docs-assets/Octagram.png" width=72 height=72">
2020-04-13 16:06:45 +00:00
</a></h1>
<ul><li><a href="index.html"><span class="selectedlink">inweb</span></a></li>
</ul><h2>Foundation Module</h2><ul>
<li><a href="../foundation-module/index.html">foundation</a></li>
<li><a href="../foundation-test/index.html">foundation-test</a></li>
2020-04-13 16:06:45 +00:00
</ul><h2>Example Webs</h2><ul>
2020-04-12 16:24:23 +00:00
<li><a href="../goldbach/index.html">goldbach</a></li>
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
2020-04-15 22:45:08 +00:00
<li><a href="../eastertide/index.html">eastertide</a></li>
2020-04-14 17:36:42 +00:00
</ul><h2>Repository</h2><ul>
2020-04-20 22:34:44 +00:00
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=18> github</a></li>
2020-04-14 17:36:42 +00:00
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inform/docs/index.html">inform</a></li>
<li><a href="../../../intest/docs/index.html">intest</a></li>
2020-04-13 16:06:45 +00:00
</ul>
</nav>
<main role="main">
2020-04-23 22:23:44 +00:00
<!--Weave of 'Configuration' generated by Inweb-->
2020-04-30 22:36:38 +00:00
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Configuration</b></li></ul></div>
<p class="purpose">To parse the command line arguments with which inweb was called, and to handle any errors it needs to issue.</p>
2019-02-04 22:26:45 +00:00
2020-04-15 22:45:08 +00:00
<ul class="toc"><li><a href="1-cnf.html#SP1">&#167;1. Instructions</a></li><li><a href="1-cnf.html#SP2">&#167;2. Reading the command line</a></li></ul><hr class="tocbar">
2019-02-04 22:26:45 +00:00
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Instructions. </b>The following structure exists just to hold what the user specified on the
2019-02-04 22:26:45 +00:00
command line: there will only ever be one of these.
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
2020-04-21 16:55:17 +00:00
<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">inweb_instructions</span><span class="plain-syntax"> {</span>
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inweb_mode</span><span class="plain-syntax">; </span><span class="comment-syntax"> our main mode of operation: one of the </span><span class="extract"><span class="extract-syntax">*_MODE</span></span><span class="comment-syntax"> constants</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_web</span><span class="plain-syntax">; </span><span class="comment-syntax"> project folder relative to cwd</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_file</span><span class="plain-syntax">; </span><span class="comment-syntax"> or, single file relative to cwd</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_range</span><span class="plain-syntax">; </span><span class="comment-syntax"> which subset of this web we apply to (often, all of it)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">chosen_range_actually_chosen</span><span class="plain-syntax">; </span><span class="comment-syntax"> rather than being a default choice</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">swarm_mode</span><span class="plain-syntax">; </span><span class="comment-syntax"> relevant to weaving only: one of the </span><span class="extract"><span class="extract-syntax">*_SWARM</span></span><span class="comment-syntax"> constants</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-tag X</span></span><span class="comment-syntax">: weave, but only the material tagged X</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-as X</span></span><span class="comment-syntax">: for example, </span><span class="extract"><span class="extract-syntax">-weave-to HTML</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">show_languages_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-show-languages</span></span><span class="comment-syntax">: print list of available PLs</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">catalogue_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-catalogue</span></span><span class="comment-syntax">: print catalogue of sections</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">functions_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-functions</span></span><span class="comment-syntax">: print catalogue of functions within sections</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">structures_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-structures</span></span><span class="comment-syntax">: print catalogue of structures within sections</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">advance_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-advance-build</span></span><span class="comment-syntax">: advance build file for web</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">scan_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-scan</span></span><span class="comment-syntax">: simply show the syntactic scan of the source</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ctags_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-ctags</span></span><span class="comment-syntax">: generate a set of Universal Ctags on each tangle</span>
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weave_to_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-to X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weave_into_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-into X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sequential</span><span class="plain-syntax">; </span><span class="comment-syntax"> give the sections sequential sigils</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tangle_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-tangle-to X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ctags_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-ctags-to X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">makefile_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-makefile X</span></span><span class="comment-syntax">: the filename X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gitignore_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-gitignore X</span></span><span class="comment-syntax">: the filename X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">advance_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-advance-build-file X</span></span><span class="comment-syntax">: advance build file X</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">writeme_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-write-me X</span></span><span class="comment-syntax">: advance build file X</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prototype_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-prototype X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">navigation_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-navigation X</span></span><span class="comment-syntax">: the filename X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colony_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-colony X</span></span><span class="comment-syntax">: the filename X, if supplied</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">member_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-member X</span></span><span class="comment-syntax">: sets web to member X of colony</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">breadcrumb_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">breadcrumb_request</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbose_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-verbose</span></span><span class="comment-syntax">: print names of files read to stdout</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">targets</span><span class="plain-syntax">; </span><span class="comment-syntax"> used only for parsing</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test_language_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-test-language X</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test_language_on_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-test-language-on X</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">import_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-import X</span></span><span class="comment-syntax">: where to find imported webs</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax">} </span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inweb_instructions is accessed in 1/pc and here.</li></ul>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Reading the command line. </b>The dull work of this is done by the Foundation module: all we need to do is
2019-02-04 22:26:45 +00:00
to enumerate constants for the Inweb-specific command line switches, and
then declare them.
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::read</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">Configuration::read</span></span>:<br/>Program Control - <a href="1-pc.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cnf.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Initialise the args</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cnf.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Declare the command-line switches specific to Inweb</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">args</span><span class="plain-syntax">, &amp;</span><a href="1-cnf.html#SP3" class="function-link"><span class="function-syntax">Configuration::switch</span></a><span class="plain-syntax">, &amp;</span><a href="1-cnf.html#SP5" class="function-link"><span class="function-syntax">Configuration::bareword</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP4" class="function-link"><span class="function-syntax">Configuration::member_and_colony</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">args</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">weave_pattern</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">weave_pattern</span><span class="plain-syntax">, </span><span class="string-syntax">"HTML"</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_web</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_file</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">makefile_setting</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">gitignore_setting</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRANSLATE_MODE</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">NO_MODE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_range</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"0"</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<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">args</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>&#167;2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Initialise the args</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">NO_MODE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">swarm_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">SWARM_OFF_SWM</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">show_languages_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">catalogue_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">functions_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">structures_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">advance_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">scan_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">verbose_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">ctags_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_web</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_range</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_range_actually_chosen</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">tangle_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">ctags_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">weave_to_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">weave_into_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">makefile_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">gitignore_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">advance_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">writeme_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">prototype_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">navigation_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">colony_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">member_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">breadcrumb_request</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">tag_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">weave_pattern</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">import_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">targets</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">test_language_setting</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">args</span><span class="plain-syntax">.</span><span class="element-syntax">test_language_on_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-cnf.html#SP2">&#167;2</a>.</li></ul>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>&#167;2.2. </b>The CommandLine section of Foundation needs to be told what command-line
2020-04-22 22:57:09 +00:00
switches we want, other than the standard set (such as <span class="extract"><span class="extract-syntax">-help</span></span>) which it
2019-02-04 22:26:45 +00:00
provides automatically.
</p>
2020-04-25 10:33:39 +00:00
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">VERBOSE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">IMPORT_FROM_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGES_CLSG</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHOW_LANGUAGES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_LANGUAGE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_LANGUAGE_ON_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ANALYSIS_CLSG</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CATALOGUE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FUNCTIONS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STRUCTURES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADVANCE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GITIGNORE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAKEFILE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WRITEME_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADVANCE_FILE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROTOTYPE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCAN_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVING_CLSG</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVE_INTO_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVE_TO_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OPEN_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVE_AS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAVE_TAG_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BREADCRUMB_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAVIGATION_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TANGLING_CLSG</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TANGLE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TANGLE_TO_CLSW</span>
2021-08-11 11:01:50 +00:00
<span class="definition-keyword">enum</span> <span class="constant-syntax">CTAGS_TO_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CTAGS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLONIAL_CLSG</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLONY_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEMBER_CLSW</span>
2019-02-04 22:26:45 +00:00
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>&#167;2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare the command-line switches specific to Inweb</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP14" class="function-link"><span class="function-syntax">CommandLine::declare_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"inweb: a tool for literate programming\n\n"</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"Usage: inweb WEB OPTIONS RANGE\n\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"WEB must be a directory holding a literate program (a 'web')\n\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"The legal RANGEs are:\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" all: complete web (the default if no TARGETS set)\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" P: all preliminaries\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" 1: Chapter 1 (and so on)\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" A: Appendix A (and so on, up to Appendix O)\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" 3/eg: section with abbreviated name \"3/eg\" (and so on)\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"You can also, or instead, specify:\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" index: to weave an HTML page indexing the project\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" chapters: to weave all chapters as individual documents\n"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">" sections: ditto with sections\n"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::begin_group</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGES_CLSG</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"for locating programming language definitions"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"read-language"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"read language definition from file X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGES_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"read-languages"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"read all language definitions in path X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SHOW_LANGUAGES_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"show-languages"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"list programming languages supported by Inweb"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEST_LANGUAGE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"test-language"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"test language X on..."</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEST_LANGUAGE_ON_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"test-language-on"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"...the code in the file X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::end_group</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::begin_group</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ANALYSIS_CLSG</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"for analysing a web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CATALOGUE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"catalogue"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"list the sections in the web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CATALOGUE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"catalog"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"same as '-catalogue'"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MAKEFILE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"makefile"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"write a makefile for this web and store it in X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GITIGNORE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"gitignore"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"write a .gitignore file for this web and store it in X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ADVANCE_FILE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"advance-build-file"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"increment daily build code in file X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WRITEME_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"write-me"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"write a read-me file following instructions in file X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PROTOTYPE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"prototype"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"translate makefile from prototype X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FUNCTIONS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"functions"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"catalogue the functions in the web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STRUCTURES_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"structures"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"catalogue the structures in the web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ADVANCE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"advance-build"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"increment daily build code for the web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCAN_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"scan"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"scan the web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::end_group</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::begin_group</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVING_CLSG</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"for weaving a web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave the web into human-readable form"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVE_INTO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave-into"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave, but into directory X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVE_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave-to"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave, but to filename X (for single files only)"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">OPEN_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"open"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave then open woven file"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVE_AS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave-as"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"set weave pattern to X (default is 'HTML')"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WEAVE_TAG_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave-tag"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"weave, but only using material tagged as X"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BREADCRUMB_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"breadcrumb"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use the text X as a breadcrumb in overhead navigation"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NAVIGATION_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"navigation"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use the file X as a column of navigation links"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::end_group</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::begin_group</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TANGLING_CLSG</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"for tangling a web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TANGLE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"tangle"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"tangle the web into machine-compilable form"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TANGLE_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"tangle-to"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"tangle, but to filename X"</span><span class="plain-syntax">);</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CTAGS_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"ctags-to"</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">L</span><span class="string-syntax">"tangle, but write Universal Ctags file to X not to 'tags'"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP6" class="function-link"><span class="function-syntax">CommandLine::declare_boolean_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CTAGS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"ctags"</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">L</span><span class="string-syntax">"write a Universal Ctags file when tangling"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::end_group</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::begin_group</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLONIAL_CLSG</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"for dealing with colonies of webs together"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLONY_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"colony"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use the file X as a list of webs in this colony"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MEMBER_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"member"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use member X from the colony as our web"</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::end_group</span></a><span class="plain-syntax">();</span>
2020-04-21 16:55:17 +00:00
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP6" class="function-link"><span class="function-syntax">CommandLine::declare_boolean_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERBOSE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"verbose"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"explain what inweb is doing"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IMPORT_FROM_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"import-from"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"specify that imported modules are at pathname X"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-cnf.html#SP2">&#167;2</a>.</li></ul>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Foundation calls this on any <span class="extract"><span class="extract-syntax">-switch</span></span> argument read:
2019-02-04 22:26:45 +00:00
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::switch</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">Configuration::switch</span></span>:<br/><a href="1-cnf.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *</span><span class="identifier-syntax">args</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</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">id</span><span class="plain-syntax">) {</span>
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="comment-syntax"> Miscellaneous</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERBOSE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verbose_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">IMPORT_FROM_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">import_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="comment-syntax"> Analysis</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LANGUAGE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="4-pl.html#SP7" class="function-link"><span class="function-syntax">Languages::read_definition</span></a><span class="plain-syntax">(</span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LANGUAGES_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="4-pl.html#SP5" class="function-link"><span class="function-syntax">Languages::read_definitions</span></a><span class="plain-syntax">(</span><a href="../foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SHOW_LANGUAGES_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">show_languages_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TEST_LANGUAGE_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_language_setting</span><span class="plain-syntax"> =</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="4-pl.html#SP7" class="function-link"><span class="function-syntax">Languages::read_definition</span></a><span class="plain-syntax">(</span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TEST_LANGUAGE_ON_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_language_on_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CATALOGUE_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">catalogue_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTIONS_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">functions_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">STRUCTURES_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">structures_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ADVANCE_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">advance_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">MAKEFILE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">makefile_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">)</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<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">GITIGNORE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">gitignore_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">)</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<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">ADVANCE_FILE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">advance_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<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">WRITEME_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">writeme_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<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">PROTOTYPE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">prototype_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">TRANSLATE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCAN_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scan_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="comment-syntax"> Weave-related</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_INTO_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_into_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_TO_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_to_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_AS_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_pattern</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_TAG_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tag_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BREADCRUMB_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><a href="6-cln.html#SP6" class="function-link"><span class="function-syntax">Colonies::request_breadcrumb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">),</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">breadcrumb_request</span><span class="plain-syntax">, </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">NAVIGATION_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">navigation_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="comment-syntax"> Colonial</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">COLONY_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">colony_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">MEMBER_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">member_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
2020-04-24 23:06:02 +00:00
<span class="plain-syntax"> </span><span class="comment-syntax"> Tangle-related</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TANGLE_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">TANGLE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TANGLE_TO_CLSW:</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tangle_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">TANGLE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2021-08-11 11:01:50 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CTAGS_TO_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ctags_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">CTAGS_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ctags_switch</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unimplemented switch"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>The colony file is, in one sense, a collection of presets for the web
2020-04-13 16:06:45 +00:00
location and its navigational aids.
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::member_and_colony</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">Configuration::member_and_colony</span></span>:<br/><a href="1-cnf.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *</span><span class="identifier-syntax">args</span><span class="plain-syntax">) {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">colony_setting</span><span class="plain-syntax">) </span><a href="6-cln.html#SP4" class="function-link"><span class="function-syntax">Colonies::load</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">colony_setting</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">member_setting</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_web</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_file</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">colony_member</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CM</span><span class="plain-syntax"> = </span><a href="6-cln.html#SP7" class="function-link"><span class="function-syntax">Colonies::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">member_setting</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">CM</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"the colony has no member of that name"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-cnf.html#SP5" class="function-link"><span class="function-syntax">Configuration::bareword</span></a><span class="plain-syntax">(0, </span><span class="identifier-syntax">CM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">path</span><span class="plain-syntax">, </span><span class="identifier-syntax">args</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_pattern</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_pattern</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">default_weave_pattern</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/2-llas.html#SP7" class="function-link"><span class="function-syntax">LinkedLists::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">breadcrumb_tail</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">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">navigation_setting</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">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">navigation_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">navigation</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">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_into_setting</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">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_into_setting</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">weave_path</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"cannot specify a web and also use -member"</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>Foundation calls this routine on any command-line argument which is
2020-04-22 22:57:09 +00:00
neither a switch (like <span class="extract"><span class="extract-syntax">-weave</span></span>), nor an argument for a switch (like
the <span class="extract"><span class="extract-syntax">X</span></span> in <span class="extract"><span class="extract-syntax">-weave-as X</span></span>).
2019-02-04 22:26:45 +00:00
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::bareword</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">Configuration::bareword</span></span>:<br/><a href="1-cnf.html#SP2">&#167;2</a>, <a href="1-cnf.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *</span><span class="identifier-syntax">args</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</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">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_web</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_file</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP21" class="function-link"><span class="function-syntax">Str::suffix_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".inweb"</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_file</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_web</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</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-cnf.html#SP6" class="function-link"><span class="function-syntax">Configuration::set_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax">}</span>
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>Here we read a range. The special ranges <span class="extract"><span class="extract-syntax">index</span></span>, <span class="extract"><span class="extract-syntax">chapters</span></span> and <span class="extract"><span class="extract-syntax">sections</span></span>
2020-04-22 22:57:09 +00:00
are converted into swarm settings instead. <span class="extract"><span class="extract-syntax">all</span></span> is simply an alias for <span class="extract"><span class="extract-syntax">0</span></span>.
2019-02-04 22:26:45 +00:00
Otherwise, a range is a chapter number/letter, or a section range.
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::set_range</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">Configuration::set_range</span></span>:<br/><a href="1-cnf.html#SP5">&#167;5</a><br/>Program Control - <a href="1-pc.html#SP7_4_3">&#167;7.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP22" class="function-link"><span class="function-syntax">Str::eq_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"index"</span><span class="plain-syntax">)) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">swarm_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">SWARM_INDEX_SWM</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<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="../foundation-module/4-sm.html#SP22" class="function-link"><span class="function-syntax">Str::eq_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"chapters"</span><span class="plain-syntax">)) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">swarm_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">SWARM_CHAPTERS_SWM</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<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="../foundation-module/4-sm.html#SP22" class="function-link"><span class="function-syntax">Str::eq_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"sections"</span><span class="plain-syntax">)) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">swarm_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">SWARM_SECTIONS_SWM</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (++</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">targets</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"at most one target may be given"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP22" class="function-link"><span class="function-syntax">Str::eq_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"all"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"0"</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">isalnum</span><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_first_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">))) &amp;&amp; (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> || (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"%i+/%i+"</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">string_position</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP10" class="function-link"><span class="function-syntax">Str::start</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_range</span><span class="plain-syntax">);</span>
2020-07-05 14:33:00 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP14" class="function-link"><span class="function-syntax">Str::put</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><a href="../foundation-module/4-chr.html#SP1" class="function-link"><span class="function-syntax">Characters::toupper</span></a><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)));</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
2020-06-27 22:03:14 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ERM</span><span class="plain-syntax">)</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ERM</span><span class="plain-syntax">, </span><span class="string-syntax">"target not recognised (see -help for more): %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="1-pc.html#SP8" class="function-link"><span class="function-syntax">Main::error_in_web</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ERM</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
2020-06-27 22:03:14 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ERM</span><span class="plain-syntax">)</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax">(1);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">chosen_range_actually_chosen</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::dispose_of</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax">}</span>
</pre>
2020-08-16 17:39:53 +00:00
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>We can only be in a single mode at a time:
2019-02-04 22:26:45 +00:00
</p>
2020-04-25 10:33:39 +00:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Configuration::set_fundamental_mode</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">Configuration::set_fundamental_mode</span></span>:<br/><a href="1-cnf.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inweb_instructions</span><span class="plain-syntax"> *</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">new_material</span><span class="plain-syntax">) {</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="constant-syntax">NO_MODE</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="identifier-syntax">new_material</span><span class="plain-syntax">))</span>
2020-04-21 23:52:25 +00:00
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"can only do one at a time - weaving, tangling or analysing"</span><span class="plain-syntax">);</span>
2020-04-21 16:55:17 +00:00
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">inweb_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_material</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
2020-04-30 22:36:38 +00:00
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-pc.html">&#10094;</a></li><li class="progresschapter"><a href="M-iti.html">M</a></li><li class="progresschapter"><a href="P-htpw.html">P</a></li><li class="progresscurrentchapter">1</li><li class="progresssection"><a href="1-bsc.html">bsc</a></li><li class="progresssection"><a href="1-pc.html">pc</a></li><li class="progresscurrent">cnf</li><li class="progresssection"><a href="1-ts.html">ts</a></li><li class="progresssection"><a href="1-ptt.html">ptt</a></li><li class="progresssection"><a href="1-apacs.html">apacs</a></li><li class="progresschapter"><a href="2-tr.html">2</a></li><li class="progresschapter"><a href="3-ta.html">3</a></li><li class="progresschapter"><a href="4-pl.html">4</a></li><li class="progresschapter"><a href="5-wt.html">5</a></li><li class="progresschapter"><a href="6-mkf.html">6</a></li><li class="progressnext"><a href="1-ts.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
2020-04-23 22:23:44 +00:00
</main>
2019-02-04 22:26:45 +00:00
</body>
</html>