add hack-a-round for language specified markdown code blocks

When language is specified in a markdown code block such as:

````
```c
    printf("Hello, world!\n");
```
````

is used, the resulting HTML as produced by `pandoc(1)` combined
with our revised `ioccc.css` is not intent the code block well.

A temporary "_hack-a-round_" is to turn the "markdown code language
specifier" into an HTML comment.  For example:

````
```<!---c-->
    printf("Hello, world!\n");
```
````

This commits turns off existing markdown code language specifiers
for now, while preserving our ability to restore them in the future
when a better  "_hack-a-round_" to the "markdown code language
specifier" problem is found.

The HTML impact if this "_hack-a-round_" is to produce HTML that
looks like this:

```
<pre class="&lt;!---c--&gt;"><code> .. </code></pre>
```

We might be able to create a complex set of classes for each markdown
code language (there won't be very many) in `ioccc.css`, or we might
find a more general CSS (or maybe `pandoc(1)`?) solution.

For now, this hack-a-round will have to do.
This commit is contained in:
Landon Curt Noll committed 2024-04-04 14:50:38 -07:00
1 parent 3919df50fb
commit b66c79254a
700 files changed
+7052 -7056

No files matched your search

+12 -12
View File
@@ -1,6 +1,6 @@
## To build:
```sh
```<!---sh-->
make
```
@@ -11,7 +11,7 @@ there is a firewall issue, and also lets you redefine the timing constant,
## To use:
```sh
```<!---sh-->
./prog < some_secret_or_something
./prog http://host[:port]
@@ -20,19 +20,19 @@ there is a firewall issue, and also lets you redefine the timing constant,
## Try:
```sh
```<!---sh-->
./prog < README.md
```
or maybe:
```sh
```<!---sh-->
echo "IOCCC 2014!" | ./prog
```
Next, try in another terminal, as the above one is running:
```sh
```<!---sh-->
./prog http://127.0.0.1:1701
```
@@ -55,13 +55,13 @@ described by the author. See [configuration](#configuration) below.
To specify the port to say, 31337, try:
```sh
```<!---sh-->
make clobber PORT=31337 alt
```
To change the timing constant, `STARDATE`, try:
```sh
```<!---sh-->
make clobber TIME=5000000 alt
```
@@ -101,26 +101,26 @@ the server.
## To use web server
```sh
```<!---sh-->
./prog < secret_file_to_be_downloaded
```
Try using the program's source code as the secret file:
```sh
```<!---sh-->
./prog < prog.c
```
## To use client-side downloader
```sh
```<!---sh-->
./prog http://host[:port]
```
The optional port defaults to 1701. If the web server instance is started on
the same box, try:
```sh
```<!---sh-->
./prog http://127.0.0.1:1701
```
@@ -246,7 +246,7 @@ numerical values.
For space considerations, the following include statements were dropped
resulting in compiler warnings:
```c
```<!---c-->
#include <asm/byteorder.h>
#include <ctype.h>
#include <netinet/in.h>
+22 -22
View File
@@ -144,20 +144,20 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<p>There is alternate code that lets you redefine the port to bind to, in case
there is a firewall issue, and also lets you redefine the timing constant,
<code>STARDATE</code>. See <a href="#alternate%20code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> some_secret_or_something</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> http://host<span class="pp">[</span><span class="ss">:port</span><span class="pp">]</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; some_secret_or_something
./prog http://host[:port]</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> README.md</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; README.md</code></pre>
<p>or maybe:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="bu">echo</span> <span class="st">&quot;IOCCC 2014!&quot;</span> <span class="kw">|</span> <span class="ex">./prog</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> echo &quot;IOCCC 2014!&quot; | ./prog</code></pre>
<p>Next, try in another terminal, as the above one is running:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> http://127.0.0.1:1701</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog http://127.0.0.1:1701</code></pre>
<p>What happens if you specify instead of a regular file something like
<code>/dev/null</code> ?</p>
<p>But there’s more! Try opening in a browser the same address and then see what
@@ -168,9 +168,9 @@ problem for some reason, and it also allows you to change the timing as
described by the author. See <a href="#configuration">configuration</a> below.</p>
<h3 id="alternate-build">Alternate build:</h3>
<p>To specify the port to say, 31337, try:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> clobber PORT=31337 alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make clobber PORT=31337 alt</code></pre>
<p>To change the timing constant, <code>STARDATE</code>, try:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> clobber TIME=5000000 alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make clobber TIME=5000000 alt</code></pre>
<p>You can combine them both of course.</p>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above. Remember that ports &lt; 1024 are
@@ -194,14 +194,14 @@ a client-side downloader. The hidden transmitted data cannot be reconstructed
or even detected from the binary content of the traffic between the client and
the server.</p>
<h2 id="to-use-web-server">To use web server</h2>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> secret_file_to_be_downloaded</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; secret_file_to_be_downloaded</code></pre>
<p>Try using the program’s source code as the secret file:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> prog.c</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; prog.c</code></pre>
<h2 id="to-use-client-side-downloader">To use client-side downloader</h2>
<div class="sourceCode" id="cb10"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> http://host<span class="pp">[</span><span class="ss">:port</span><span class="pp">]</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog http://host[:port]</code></pre>
<p>The optional port defaults to 1701. If the web server instance is started on
the same box, try:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> http://127.0.0.1:1701</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog http://127.0.0.1:1701</code></pre>
<p>It will incrementally display the contents of the hidden file at a rate of
approximately 1 baud.</p>
<p>The client-side downloader will automatically terminate if the web server is
@@ -296,15 +296,15 @@ numerical values.</li>
<h3 id="compiler-warnings">Compiler warnings</h3>
<p>For space considerations, the following include statements were dropped
resulting in compiler warnings:</p>
<div class="sourceCode" id="cb12"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;asm/byteorder.h&gt;</span></span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;ctype.h&gt;</span></span>
<span id="cb12-3"><a href="#cb12-3" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;netinet/in.h&gt;</span></span>
<span id="cb12-4"><a href="#cb12-4" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;stdlib.h&gt;</span></span>
<span id="cb12-5"><a href="#cb12-5" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;string.h&gt;</span></span>
<span id="cb12-6"><a href="#cb12-6" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;sys/select.h&gt;</span></span>
<span id="cb12-7"><a href="#cb12-7" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;sys/socket.h&gt;</span></span>
<span id="cb12-8"><a href="#cb12-8" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;sys/types.h&gt;</span></span>
<span id="cb12-9"><a href="#cb12-9" aria-hidden="true" tabindex="-1"></a> <span class="pp">#include </span><span class="im">&lt;sys/unistd.h&gt;</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> #include &lt;asm/byteorder.h&gt;
#include &lt;ctype.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;sys/select.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/unistd.h&gt;</code></pre>
<p>It may be necessary to restore some of these under certain environments.</p>
<!--
+7 -7
View File
@@ -1,6 +1,6 @@
## To build:
```sh
```<!---sh-->
make
```
@@ -12,14 +12,14 @@ code](#alternate-code) below.
## To use:
```sh
```<!---sh-->
./prog
```
## Try:
```sh
```<!---sh-->
./prog
```
@@ -36,7 +36,7 @@ recognisable and also to let you reconfigure the coordinates.
### Alternate build:
```sh
```<!---sh-->
make alt
```
@@ -45,7 +45,7 @@ If you wish to redefine the coordinates you can do so by defining `X1`, `X2`,
For instance:
```sh
```<!---sh-->
make clobber X1=-3 X2=2 Y1=-2.3 Y2=2.3 alt
```
@@ -59,7 +59,7 @@ Use `prog.alt` as you would `prog`.
### Alternate try:
```sh
```<!---sh-->
./try.alt.sh
```
@@ -94,7 +94,7 @@ The usage of recognizable elements from the C programming language in the
application source code is intentionally kept to a bare minimum. If this phrase
would not be true, the application would be the following:
```c
```<!---c-->
double _[]={-2
,1,-1.3 ,1.3, 0, 0,0,0
,0 ,0,50, 80, 0,0,0 ,255
+25 -25
View File
@@ -141,15 +141,15 @@ Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown location</em></l
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<p>There is an alternate version that the author provided but fixed in 2023 to
compile with modern systems and to allow one to reconfigure the constants <code>X1</code>,
<code>X2</code>, <code>Y1</code> and <code>Y2</code> (which were magic numbers). See <a href="#alternate-code">Alternate
code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<p>Try changing bounding box coordinates in the source to explore
various regions of the fractal.</p>
<h2 id="alternate-code">Alternate code:</h2>
@@ -157,16 +157,16 @@ various regions of the fractal.</p>
easily see the difference in what it might look like if the C was more
recognisable and also to let you reconfigure the coordinates.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<p>If you wish to redefine the coordinates you can do so by defining <code>X1</code>, <code>X2</code>,
<code>Y1</code> and/or <code>Y2</code>, which default to: <code>-2</code>, <code>1</code>, <code>-1.3</code> and <code>1.3</code> respectively.
For instance:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> clobber X1=-3 X2=2 Y1=-2.3 Y2=2.3 alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make clobber X1=-3 X2=2 Y1=-2.3 Y2=2.3 alt</code></pre>
<p>You may pick and choose which ones to redefine.</p>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code>.</p>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.alt.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.alt.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>We consider this entry a tribute to all “Abuse of the C preprocessor”
and Mandelbrot fractal drawing entries we’ve seen over the years.</p>
@@ -186,25 +186,25 @@ drawer. There are tools much better suited for drawing fractals.</p>
<p>The usage of recognizable elements from the C programming language in the
application source code is intentionally kept to a bare minimum. If this phrase
would not be true, the application would be the following:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a> <span class="dt">double</span> _<span class="op">[]={-</span><span class="dv">2</span></span>
<span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span><span class="dv">1</span><span class="op">,-</span><span class="fl">1.3</span> <span class="op">,</span><span class="fl">1.3</span><span class="op">,</span> <span class="dv">0</span><span class="op">,</span> <span class="dv">0</span><span class="op">,</span><span class="dv">0</span><span class="op">,</span><span class="dv">0</span></span>
<span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span><span class="dv">0</span> <span class="op">,</span><span class="dv">0</span><span class="op">,</span><span class="dv">50</span><span class="op">,</span> <span class="dv">80</span><span class="op">,</span> <span class="dv">0</span><span class="op">,</span><span class="dv">0</span><span class="op">,</span><span class="dv">0</span> <span class="op">,</span><span class="dv">255</span></span>
<span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span> <span class="dv">8</span><span class="op">,</span><span class="dv">0</span><span class="op">};</span> <span class="dt">int</span> main <span class="op">(</span></span>
<span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">int</span> j<span class="op">)</span> <span class="op">{</span><span class="cf">if</span> <span class="op">(</span>j<span class="op">==</span> <span class="dv">1</span> <span class="op">){</span> <span class="cf">if</span><span class="op">(</span></span>
<span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a> _<span class="op">[</span><span class="dv">12</span><span class="op">]</span> <span class="op">&gt;</span>_<span class="op">[</span><span class="dv">10</span><span class="op">]</span> <span class="op">)</span>_<span class="op">[</span><span class="dv">17</span><span class="op">]=</span><span class="dv">1</span> <span class="op">;}</span> <span class="cf">if</span></span>
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a> <span class="op">(</span>_<span class="op">[</span><span class="dv">13</span><span class="op">]</span> <span class="op">&gt;</span>_<span class="op">[</span><span class="dv">11</span> <span class="op">]</span> <span class="op">||</span>_<span class="op">[</span><span class="dv">17</span><span class="op">]==</span><span class="dv">1</span><span class="op">)</span> <span class="cf">return</span> <span class="dv">1</span></span>
<span id="cb7-8"><a href="#cb7-8" aria-hidden="true" tabindex="-1"></a> <span class="op">;</span>_<span class="op">[</span><span class="dv">6</span><span class="op">]</span> <span class="op">=</span> _ <span class="op">[</span><span class="dv">13</span><span class="op">]</span> <span class="op">/</span> _<span class="op">[</span><span class="dv">11</span><span class="op">]*(</span>_<span class="op">[</span><span class="dv">1</span><span class="op">]-</span>_<span class="op">[</span> <span class="dv">0</span><span class="op">])</span></span>
<span id="cb7-9"><a href="#cb7-9" aria-hidden="true" tabindex="-1"></a> <span class="op">+</span>_<span class="op">[</span> <span class="dv">0</span><span class="op">];</span> _ <span class="op">[</span><span class="dv">7</span><span class="op">]=</span>_<span class="op">[</span><span class="dv">12</span><span class="op">]/</span>_<span class="op">[</span><span class="dv">10</span><span class="op">]*(</span>_<span class="op">[</span><span class="dv">3</span><span class="op">]-</span>_<span class="op">[</span><span class="dv">2</span><span class="op">]</span> <span class="op">)+</span>_</span>
<span id="cb7-10"><a href="#cb7-10" aria-hidden="true" tabindex="-1"></a> <span class="op">[</span><span class="dv">2</span><span class="op">];</span>_<span class="op">[</span><span class="dv">8</span><span class="op">]=</span>_<span class="op">[</span><span class="dv">9</span><span class="op">]=</span>_<span class="op">[</span><span class="dv">14</span><span class="op">]=</span><span class="dv">0</span><span class="op">;</span>l2<span class="op">:</span>_<span class="op">[</span><span class="dv">4</span><span class="op">]=</span>_<span class="op">[</span><span class="dv">8</span><span class="op">]</span> <span class="op">*</span> _ <span class="op">[</span><span class="dv">8</span><span class="op">]</span></span>
<span id="cb7-11"><a href="#cb7-11" aria-hidden="true" tabindex="-1"></a> <span class="op">;</span>_<span class="op">[</span> <span class="dv">5</span><span class="op">]=</span> _ <span class="op">[</span><span class="dv">9</span><span class="op">]*</span>_<span class="op">[</span><span class="dv">9</span><span class="op">];</span>_<span class="op">[</span><span class="dv">9</span><span class="op">]=</span><span class="dv">2</span><span class="op">*</span>_<span class="op">[</span><span class="dv">8</span><span class="op">]*</span>_<span class="op">[</span><span class="dv">9</span><span class="op">]+</span> _<span class="op">[</span><span class="dv">7</span></span>
<span id="cb7-12"><a href="#cb7-12" aria-hidden="true" tabindex="-1"></a> <span class="op">];</span>_<span class="op">[</span><span class="dv">8</span> <span class="op">]</span> <span class="op">=</span> _ <span class="op">[</span> <span class="dv">4</span> <span class="op">]-</span>_<span class="op">[</span><span class="dv">5</span><span class="op">]+</span>_<span class="op">[</span><span class="dv">6</span><span class="op">];</span>_<span class="op">[</span><span class="dv">14</span> <span class="op">]++</span></span>
<span id="cb7-13"><a href="#cb7-13" aria-hidden="true" tabindex="-1"></a> <span class="op">;</span><span class="cf">if</span><span class="op">((</span>_ <span class="op">[</span><span class="dv">14</span><span class="op">]&lt;</span> _ <span class="op">[</span><span class="dv">15</span><span class="op">])&amp;&amp;(</span>_<span class="op">[</span><span class="dv">4</span><span class="op">]+</span> _<span class="op">[</span> <span class="dv">5</span><span class="op">]</span></span>
<span id="cb7-14"><a href="#cb7-14" aria-hidden="true" tabindex="-1"></a> <span class="op">&lt;</span>_<span class="op">[</span><span class="dv">16</span> <span class="op">]))</span> <span class="cf">goto</span> l2<span class="op">;</span> putchar<span class="op">(</span></span>
<span id="cb7-15"><a href="#cb7-15" aria-hidden="true" tabindex="-1"></a> <span class="st">&quot; #@*+ &quot;</span><span class="op">[(</span> <span class="dt">int</span><span class="op">)</span> _<span class="op">[</span><span class="dv">14</span><span class="op">]%</span></span>
<span id="cb7-16"><a href="#cb7-16" aria-hidden="true" tabindex="-1"></a> <span class="dv">5</span> <span class="op">]);</span>_ <span class="op">[</span><span class="dv">13</span> <span class="op">]</span> <span class="op">++</span> <span class="op">;</span> main <span class="op">(</span></span>
<span id="cb7-17"><a href="#cb7-17" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span><span class="op">)</span> <span class="op">;</span>_<span class="op">[</span><span class="dv">12</span><span class="op">]++;</span> _<span class="op">[</span><span class="dv">13</span><span class="op">]</span> <span class="op">=</span><span class="dv">0</span></span>
<span id="cb7-18"><a href="#cb7-18" aria-hidden="true" tabindex="-1"></a> <span class="op">;</span><span class="cf">if</span><span class="op">(</span>_ <span class="op">[</span><span class="dv">17</span><span class="op">]</span> <span class="op">!=</span><span class="dv">1</span><span class="op">)</span> putchar</span>
<span id="cb7-19"><a href="#cb7-19" aria-hidden="true" tabindex="-1"></a> <span class="op">(</span><span class="bn">0xa</span><span class="op">);</span> main<span class="op">(</span><span class="dv">1</span><span class="op">);}</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> double _[]={-2
,1,-1.3 ,1.3, 0, 0,0,0
,0 ,0,50, 80, 0,0,0 ,255
, 8,0}; int main (
int j) {if (j== 1 ){ if(
_[12] &gt;_[10] )_[17]=1 ;} if
(_[13] &gt;_[11 ] ||_[17]==1) return 1
;_[6] = _ [13] / _[11]*(_[1]-_[ 0])
+_[ 0]; _ [7]=_[12]/_[10]*(_[3]-_[2] )+_
[2];_[8]=_[9]=_[14]=0;l2:_[4]=_[8] * _ [8]
;_[ 5]= _ [9]*_[9];_[9]=2*_[8]*_[9]+ _[7
];_[8 ] = _ [ 4 ]-_[5]+_[6];_[14 ]++
;if((_ [14]&lt; _ [15])&amp;&amp;(_[4]+ _[ 5]
&lt;_[16 ])) goto l2; putchar(
&quot; #@*+ &quot;[( int) _[14]%
5 ]);_ [13 ] ++ ; main (
0) ;_[12]++; _[13] =0
;if(_ [17] !=1) putchar
(0xa); main(1);}</code></pre>
<p>The application expects no parameters, the only way you can change the behaviour
is to modify the source code at the indicated location: the line
<code>/* &lt;-- Configure here: X1, X2, Y1, Y2 */</code> is intentionally not obfuscated so
+5 -5
View File
@@ -1,20 +1,20 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./prog > foo.c
```
## Try:
```sh
```<!---sh-->
./try.sh
```
@@ -36,14 +36,14 @@ What is the difference between running `./prog` and `main`?
Big terminals with tiny fonts have their uses in certain cases.
One of them is:
```sh
```<!---sh-->
make treacl
./treacl
```
which is shorthand for:
```sh
```<!---sh-->
./prog < prog.c > treacle.c
make treacle
./treacle
+8 -8
View File
@@ -141,11 +141,11 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&gt;</span> foo.c</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &gt; foo.c</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<p>The script will ask you if you wish to run <code>make rake</code> but this is not necessary
to fully enjoy the entry. <code>make rake</code> will run the <a href="rake.sh">rake.sh</a> script and
then <code>prog</code> if all is built okay. If <code>rake</code> is not installed then it will check
@@ -159,12 +159,12 @@ build <code>main.c</code>.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Big terminals with tiny fonts have their uses in certain cases.
One of them is:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> treacl</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <span class="ex">./treacl</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make treacl
./treacl</code></pre>
<p>which is shorthand for:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> prog.c <span class="op">&gt;</span> treacle.c</span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> treacle</span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">./treacle</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; prog.c &gt; treacle.c
make treacle
./treacle</code></pre>
<p>When using a smartphone to read the output, you may need to
step back to see the bigger picture because that picture is worth
more than 1000 words.</p>
+10 -10
View File
@@ -134,7 +134,7 @@ the program!</p>
<h2 id="how-did-i-achieve-that">How did I achieve that?</h2>
<p>It is known that we can mitigate the quine restriction by <code>eval</code>.
For example, this is a quine written in Ruby:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode ruby"><code class="sourceCode ruby"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">eval</span> s<span class="kw">=</span><span class="st">&quot;print &#39;eval s=&#39;; p s&quot;</span></span></code></pre></div>
<pre class="&lt;!---ruby--&gt;"><code> eval s=&quot;print &#39;eval s=&#39;; p s&quot;</code></pre>
<p>Note that <code>print</code> appears just once in the program.</p>
<p>To emulate this approach in C, I adopted the following structure.</p>
<pre><code> char s[]=&quot;&lt;main code&gt;int main() { &lt;VM code&gt; }&quot;;
@@ -230,8 +230,8 @@ renaming and automatic register allocation only for this purpose.</p>
<li><a href="gen-prog.c">gen-prog.c</a> generates <a href="prog.c">prog.c</a> based on <code>main.c</code>.</li>
</ul>
<p>You can run the process by <code>rake</code> command. <code>ruby-minisat</code> gem is needed.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">$</span> gem install ruby-minisat</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <span class="ex">$</span> rake</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> $ gem install ruby-minisat
$ rake</code></pre>
<h2 id="tools">Tools</h2>
<p>I checked that the following QR code readers can read the output of my program.</p>
<ul>
@@ -243,13 +243,13 @@ found at
<code>https://play.google.com/store/apps/details?id=com.google.zxing.client.android</code>
but it appears to no longer exist.</p>
<p>You can use <a href="tool.rb">tool.rb</a> to convert the output to a png file.</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./main</span> Hello <span class="kw">|</span> <span class="ex">ruby</span> tool.rb <span class="op">&gt;</span> hello.png</span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">$</span> zbarimg <span class="at">-q</span> hello.png</span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a> <span class="ex">QR-Code:Hello</span></span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-6"><a href="#cb5-6" aria-hidden="true" tabindex="-1"></a> <span class="ex">$</span> ruby tool.rb prog.c</span>
<span id="cb5-7"><a href="#cb5-7" aria-hidden="true" tabindex="-1"></a> <span class="ex">$</span> ruby tool.rb prog.c <span class="kw">|</span> <span class="ex">ruby</span> tool.rb</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./main Hello | ruby tool.rb &gt; hello.png
$ zbarimg -q hello.png
QR-Code:Hello
$ ruby tool.rb prog.c
$ ruby tool.rb prog.c | ruby tool.rb</code></pre>
<h2 id="limitations">Limitations</h2>
<ul>
<li>QR code error correction level is fixed to L (Low).</li>
+3 -3
View File
@@ -18,7 +18,7 @@ Do you think that it is possible to write QR code encoder in C within *1kB*?
It is known that we can mitigate the quine restriction by `eval`.
For example, this is a quine written in Ruby:
```ruby
```<!---ruby-->
eval s="print 'eval s='; p s"
```
@@ -122,7 +122,7 @@ The compiler tool chain is the following.
You can run the process by `rake` command. `ruby-minisat` gem is needed.
```sh
```<!---sh-->
$ gem install ruby-minisat
$ rake
```
@@ -145,7 +145,7 @@ but it appears to no longer exist.
You can use [tool.rb](tool.rb) to convert the output to a png file.
```sh
```<!---sh-->
./main Hello | ruby tool.rb > hello.png
$ zbarimg -q hello.png
+3 -3
View File
@@ -1,20 +1,20 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./prog < input > output
```
## Try:
```sh
```<!---sh-->
./try.sh
```
+3 -3
View File
@@ -141,11 +141,11 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> input <span class="op">&gt;</span> output</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; input &gt; output</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>If you look closely at the source, you will see code that appears
to puts C code that includes itself. How and why? Perhaps it is
+7 -7
View File
@@ -3,7 +3,7 @@
This entry requires SDL to be installed. See [FAQ 3.8](../../faq.html#SDL) if you
don't know how to do this for your system.
```sh
```<!---sh-->
make
```
@@ -21,7 +21,7 @@ For more detailed information see [2014 maffiodo1 bugs](../../bugs.html#2014_maf
## To use:
```sh
```<!---sh-->
cat game.level | ./prog 320 200 800 300 128 144 game.rgba game.wav 10343679
```
@@ -41,7 +41,7 @@ note on macOS.
## Try:
```sh
```<!---sh-->
./giana.sh
./mario.sh
@@ -61,7 +61,7 @@ try:
If you wish to change the width and height, defaulting at 640 x 480, say to
800 x 800, try:
```sh
```<!---sh-->
ROWS=800 COLS=800 ./mario.sh
ROWS=800 COLS=800 ./giana.sh
@@ -92,14 +92,14 @@ immediately take effect.
Use `tabsize=4` to see the magic.
```sh
```<!---sh-->
expand -t 4 prog.c
```
The program returns 0 if the player wins or *non-zero* if the player loses so
you can test it and make something useful (or not), like this:
```sh
```<!---sh-->
cat mario.level | ./prog 320 200 800 300 128 144 mario.rgba mario8.wav 10343679 && telnet telehack.com 23
```
@@ -228,7 +228,7 @@ You can input as many objects as you want but the maximum number of objects
handled by the program is 333. You can modify this value by editing the source
here:
```c
```<!---c-->
C[333*7],d=333;
```
+11 -11
View File
@@ -143,13 +143,13 @@ Location: <a href="../../location.html#IT">IT</a> - <em>Italian Republic</em> (<
<h2 id="to-build">To build:</h2>
<p>This entry requires SDL to be installed. See <a href="../../faq.html#SDL">FAQ 3.8</a> if you
don’t know how to do this for your system.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<pre><code> STATUS: INABIAF - please **DO NOT** fix</code></pre>
<p>For more detailed information see <a href="../../bugs.html#2014_maffiodo1">2014 maffiodo1 bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">cat</span> game.level <span class="kw">|</span> <span class="ex">./prog</span> 320 200 800 300 128 144 game.rgba game.wav 10343679</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> cat game.level | ./prog 320 200 800 300 128 144 game.rgba game.wav 10343679</code></pre>
<p>The parameters to the program are:</p>
<ol type="1">
<li>Window width.</li>
@@ -164,9 +164,9 @@ don’t know how to do this for your system.</p>
note on macOS.</li>
</ol>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./giana.sh</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">./mario.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./giana.sh
./mario.sh</code></pre>
<p>If you end up telnetting to the server (feature of <a href="mario.sh">mario.sh</a>) you can
try:</p>
<pre><code> ls # show files including games
@@ -175,9 +175,9 @@ try:</p>
starwars # animated Star Wars &#39;film&#39;</code></pre>
<p>If you wish to change the width and height, defaulting at 640 x 480, say to
800 x 800, try:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a> <span class="va">ROWS</span><span class="op">=</span>800 <span class="va">COLS</span><span class="op">=</span>800 <span class="ex">./mario.sh</span></span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> <span class="va">ROWS</span><span class="op">=</span>800 <span class="va">COLS</span><span class="op">=</span>800 <span class="ex">./giana.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ROWS=800 COLS=800 ./mario.sh
ROWS=800 COLS=800 ./giana.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>A classic for a particular generation. Like all good programs, being data
driven means you can do fun things in small spaces.</p>
@@ -191,10 +191,10 @@ immediately take effect.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="remarks">Remarks</h3>
<p>Use <code>tabsize=4</code> to see the magic.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">expand</span> <span class="at">-t</span> 4 prog.c</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> expand -t 4 prog.c</code></pre>
<p>The program returns 0 if the player wins or <em>non-zero</em> if the player loses so
you can test it and make something useful (or not), like this:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">cat</span> mario.level <span class="kw">|</span> <span class="ex">./prog</span> 320 200 800 300 128 144 mario.rgba mario8.wav 10343679 <span class="kw">&amp;&amp;</span> <span class="ex">telnet</span> telehack.com 23</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> cat mario.level | ./prog 320 200 800 300 128 144 mario.rgba mario8.wav 10343679 &amp;&amp; telnet telehack.com 23</code></pre>
<p>and type in: <code>starwars</code></p>
<p>This is an engine for <a href="https://en.wikipedia.org/wiki/Platform_game">platform
game</a>. It can be used to create
@@ -288,7 +288,7 @@ to create.</p>
You can input as many objects as you want but the maximum number of objects
handled by the program is 333. You can modify this value by editing the source
here:</p>
<div class="sourceCode" id="cb12"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a> C<span class="op">[</span><span class="dv">333</span><span class="op">*</span><span class="dv">7</span><span class="op">],</span>d<span class="op">=</span><span class="dv">333</span><span class="op">;</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> C[333*7],d=333;</code></pre>
<p>Each row has six columns:</p>
<ol type="1">
<li><code>Screen X</code> : <code>x</code> position of the object in the level.</li>
+10 -10
View File
@@ -1,6 +1,6 @@
## To build:
```sh
```<!---sh-->
make
```
@@ -21,14 +21,14 @@ For more detailed information see [2014 maffiodo2 bugs](../../bugs.html#2014_maf
## To use:
```sh
```<!---sh-->
./prog arg
```
## Try:
```sh
```<!---sh-->
./try.sh
```
@@ -41,14 +41,14 @@ as fun but it's 121 bytes instead of 140.
### Alternate build:
```sh
```<!---sh-->
make alt
```
### Alternate use:
```sh
```<!---sh-->
cat image.rgb | ./prog.alt
```
@@ -91,7 +91,7 @@ The program will crash if run without parameters.
If you have a terminal geometry than is different from the common 80x25 you can
modify the *output width* by changing the value of the first variable:
```c
```<!---c-->
d=80,
```
@@ -99,14 +99,14 @@ modify the *output width* by changing the value of the first variable:
Type this:
```sh
```<!---sh-->
cat image.rgb | ./prog " .:;Y0"
```
You can use your own image. Convert the image to a raw RGB image. Using
ImageMagick it's very simple:
```sh
```<!---sh-->
convert -geometry 80x source.jpg image.rgb
```
@@ -116,7 +116,7 @@ program is the *conversion ramp*. You can use different ramps or create your own
These are some ramps you can try:
```sh
```<!---sh-->
./prog " :1"
./prog " .:;Y0"
./prog " .:-=+*#%@"
@@ -127,7 +127,7 @@ These are some ramps you can try:
An alternative version of this program is only 121bytes long:
```c
```<!---c-->
d=80,e,j;g(){j+=getchar();}main(){for(;;){j=0;g();if(j<0)break;g(g());putchar(" .:#@"[j/3*5>>8]);if(!(++e%d))puts("");}}
```
+13 -13
View File
@@ -141,7 +141,7 @@ Location: <a href="../../location.html#IT">IT</a> - <em>Italian Republic</em> (<
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<p>There is a 121 byte version provided by the author. See <a href="#alternate-code">Alternate
code</a> below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
@@ -149,16 +149,16 @@ code</a> below.</p>
<pre><code> STATUS: INABIAF - please **DO NOT** fix</code></pre>
<p>For more detailed information see <a href="../../bugs.html#2014_maffiodo2">2014 maffiodo2 bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> arg</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog arg</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>This shorter version is provided by the author. It has a fixed ramp and so not
as fun but it’s 121 bytes instead of 140.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">cat</span> image.rgb <span class="kw">|</span> <span class="ex">./prog.alt</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> cat image.rgb | ./prog.alt</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>On the face of it :-) given what this program does one might wonder what makes
this winning entry special. But when you realize the source is small enough for posting
@@ -185,24 +185,24 @@ from <code>stdin</code> and print the ASCII ART to <code>stdout</code>.</p>
<h3 id="screen-size">Screen size</h3>
<p>If you have a terminal geometry than is different from the common 80x25 you can
modify the <em>output width</em> by changing the value of the first variable:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a> d<span class="op">=</span><span class="dv">80</span><span class="op">,</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> d=80,</code></pre>
<h3 id="something-to-try">Something to try</h3>
<p>Type this:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">cat</span> image.rgb <span class="kw">|</span> <span class="ex">./prog</span> <span class="st">&quot; .:;Y0&quot;</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> cat image.rgb | ./prog &quot; .:;Y0&quot;</code></pre>
<p>You can use your own image. Convert the image to a raw RGB image. Using
ImageMagick it’s very simple:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">convert</span> <span class="at">-geometry</span> 80x source.jpg image.rgb</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> convert -geometry 80x source.jpg image.rgb</code></pre>
<p>This program require one parameter or it will crash. The parameter of the
program is the <em>conversion ramp</em>. You can use different ramps or create your own
(for example using some letters of your name).</p>
<p>These are some ramps you can try:</p>
<div class="sourceCode" id="cb10"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="st">&quot; :1&quot;</span></span>
<span id="cb10-2"><a href="#cb10-2" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="st">&quot; .:;Y0&quot;</span></span>
<span id="cb10-3"><a href="#cb10-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="st">&quot; .:-=+*#%@&quot;</span></span>
<span id="cb10-4"><a href="#cb10-4" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="st">&quot; .,:!-iots&amp;8%#@$&quot;</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &quot; :1&quot;
./prog &quot; .:;Y0&quot;
./prog &quot; .:-=+*#%@&quot;
./prog &quot; .,:!-iots&amp;8%#@$&quot;</code></pre>
<h3 id="byte-version">121 byte version</h3>
<p>An alternative version of this program is only 121bytes long:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a> d<span class="op">=</span><span class="dv">80</span><span class="op">,</span>e<span class="op">,</span>j<span class="op">;</span>g<span class="op">(){</span>j<span class="op">+=</span>getchar<span class="op">();}</span>main<span class="op">(){</span><span class="cf">for</span><span class="op">(;;){</span>j<span class="op">=</span><span class="dv">0</span><span class="op">;</span>g<span class="op">();</span><span class="cf">if</span><span class="op">(</span>j<span class="op">&lt;</span><span class="dv">0</span><span class="op">)</span><span class="cf">break</span><span class="op">;</span>g<span class="op">(</span>g<span class="op">());</span>putchar<span class="op">(</span><span class="st">&quot; .:#@&quot;</span><span class="op">[</span>j<span class="op">/</span><span class="dv">3</span><span class="op">*</span><span class="dv">5</span><span class="op">&gt;&gt;</span><span class="dv">8</span><span class="op">]);</span><span class="cf">if</span><span class="op">(!(++</span>e<span class="op">%</span>d<span class="op">))</span>puts<span class="op">(</span><span class="st">&quot;&quot;</span><span class="op">);}}</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> d=80,e,j;g(){j+=getchar();}main(){for(;;){j=0;g();if(j&lt;0)break;g(g());putchar(&quot; .:#@&quot;[j/3*5&gt;&gt;8]);if(!(++e%d))puts(&quot;&quot;);}}</code></pre>
<p>This alternative version has a <strong>fixed ramp</strong>. It’s smaller but it’s not so fun to use…</p>
<!--
+3 -3
View File
@@ -1,20 +1,20 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./prog [arg ..]
```
## Try:
```sh
```<!---sh-->
./try.sh
```
+3 -3
View File
@@ -141,11 +141,11 @@ Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<e
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> [arg ..]</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog [arg ..]</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Think of this as a Maker Faire’s make. :-)</p>
<p>It works reasonably well. While not super ultra-featured, it does fair well
+5 -5
View File
@@ -1,13 +1,13 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./hecate.sh
./glock.sh
@@ -16,7 +16,7 @@
## Try:
```sh
```<!---sh-->
./try.sh
```
@@ -41,7 +41,7 @@ under one minute.
To start, compile and run the program. To resume, compile and run the
output repeatedly until you have won/lost the game. For example:
```sh
```<!---sh-->
cp prog.c run.c
gcc -O0 run.c -o run && ./run | tee run.c
gcc -O2 run.c -o run && ./run | tee run.c
@@ -106,7 +106,7 @@ a primary input.
that there are no files named "run" and "run.c" in current directory
(they will be overwritten) and run:
```sh
```<!---sh-->
perl prog.c | bash
```
+10 -10
View File
@@ -141,13 +141,13 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./hecate.sh</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">./glock.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./hecate.sh
./glock.sh</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<p>This script will ask you if you wish to try again after each run. Type in any
character other than <code>y</code> or <code>Y</code> to exit at this point.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -160,10 +160,10 @@ or unspecified behavior?</p>
under one minute.</p>
<p>To start, compile and run the program. To resume, compile and run the
output repeatedly until you have won/lost the game. For example:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">cp</span> prog.c run.c</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <span class="fu">gcc</span> <span class="at">-O0</span> run.c <span class="at">-o</span> run <span class="kw">&amp;&amp;</span> <span class="ex">./run</span> <span class="kw">|</span> <span class="fu">tee</span> run.c</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">gcc</span> <span class="at">-O2</span> run.c <span class="at">-o</span> run <span class="kw">&amp;&amp;</span> <span class="ex">./run</span> <span class="kw">|</span> <span class="fu">tee</span> run.c</span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> <span class="ex">...</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> cp prog.c run.c
gcc -O0 run.c -o run &amp;&amp; ./run | tee run.c
gcc -O2 run.c -o run &amp;&amp; ./run | tee run.c
...</code></pre>
<h3 id="details">Details</h3>
<p><code>Sinon</code> is played by compiling and running the output repeatedly. Two
factors determine what actions are taken:</p>
@@ -211,7 +211,7 @@ a primary input.</p>
<p><code>Sinon</code> has a demo mode that plays the game automatically. Make sure
that there are no files named “run” and “run.c” in current directory
(they will be overwritten) and run:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">perl</span> prog.c <span class="kw">|</span> <span class="fu">bash</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> perl prog.c | bash</code></pre>
<p>File size and CRC32 of <a href="prog.c">prog.c</a> are embedded in line 7.</p>
<p>Process for making <code>Sinon</code> is included in <a href="spoiler.html">spoiler.html</a>.</p>
<p>Layout of this code is based on Asada Shino, also known as “<code>Sinon</code>”,
+2 -2
View File
@@ -1,13 +1,13 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./prog
```
+2 -2
View File
@@ -141,9 +141,9 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<p>HINT: Try pressing the left and right arrow keys as needed.
Also try pressing space/enter to select options.
Pressing Q or Escape may end the fun before you are ready. :-)</p>
+8 -8
View File
@@ -1,6 +1,6 @@
## To build:
```sh
```<!---sh-->
make
```
@@ -22,7 +22,7 @@ For more detailed information see [2014 vik bugs](../../bugs.html#2014_vik).
## To use:
```sh
```<!---sh-->
echo foo | ./prog > audio_file.raw
echo foo | ./prog | mplayer -demuxer rawaudio -
@@ -31,7 +31,7 @@ For more detailed information see [2014 vik bugs](../../bugs.html#2014_vik).
## Try:
```sh
```<!---sh-->
./try.sh
```
@@ -44,7 +44,7 @@ instructions on how to get it to work with Windows.
### Alternate build:
```sh
```<!---sh-->
make alt
```
@@ -59,13 +59,13 @@ Use `prog.alt` as you would `prog` above as well as below.
This program sets a new tone for obfuscation. But do you understand
what it says about obfuscation? Perhaps:
```sh
```<!---sh-->
./prog < prog.c > prog.raw
```
might speak to your coding style? If not, then perhaps:
```sh
```<!---sh-->
./prog < README.md | mplayer -demuxer rawaudio -
```
@@ -87,7 +87,7 @@ Don't forget the last '`-`' as it makes `mplayer(1)` read from `stdin`.
## Convert audio file with Morse signals to text
```sh
```<!---sh-->
./prog e < audio_file.raw
```
@@ -106,7 +106,7 @@ Microsoft compilers add a carriage return to newlines, and to compile the
program with this platform, the following line can be added to `main()` before
any code in order for the program to run correctly:
```c
```<!---c-->
_setmode(_fileno(stdout), 0x8000);
```
+10 -10
View File
@@ -141,7 +141,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<p>There is an alternate version that will theoretically work with Windows
compilers (if anything in Windows works :-) ). See the <a href="#alternate-code">Alternate
code</a> section below.</p>
@@ -150,24 +150,24 @@ code</a> section below.</p>
<pre><code> STATUS: known bug - please help us fix</code></pre>
<p>For more detailed information see <a href="../../bugs.html#2014_vik">2014 vik bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="bu">echo</span> foo <span class="kw">|</span> <span class="ex">./prog</span> <span class="op">&gt;</span> audio_file.raw</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a> <span class="bu">echo</span> foo <span class="kw">|</span> <span class="ex">./prog</span> <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> echo foo | ./prog &gt; audio_file.raw
echo foo | ./prog | mplayer -demuxer rawaudio -</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>The alternate code, <a href="prog.alt.c">prog.alt.c</a>, is based on the author’s
instructions on how to get it to work with Windows.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span> alt</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above as well as below.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This program sets a new tone for obfuscation. But do you understand
what it says about obfuscation? Perhaps:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> prog.c <span class="op">&gt;</span> prog.raw</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; prog.c &gt; prog.raw</code></pre>
<p>might speak to your coding style? If not, then perhaps:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> <span class="op">&lt;</span> README.md <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; README.md | mplayer -demuxer rawaudio -</code></pre>
<p>might help? :-)</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="remarks">Remarks</h3>
@@ -177,7 +177,7 @@ I can tell, there are at least six chocolate references in this program.</p>
Via streaming to <code>mplayer(1)</code>, you can listen to the Morse audio.</p>
<p>Don’t forget the last ‘<code>-</code>’ as it makes <code>mplayer(1)</code> read from <code>stdin</code>.</p>
<h2 id="convert-audio-file-with-morse-signals-to-text">Convert audio file with Morse signals to text</h2>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> e <span class="op">&lt;</span> audio_file.raw</span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog e &lt; audio_file.raw</code></pre>
<p>or alternatively pass a .wav file as input.</p>
<p>The preferred input format 44.1kHz stereo, but it does a decent job on mono
input and different frequencies as well.</p>
@@ -187,7 +187,7 @@ the program relies on writing binary data to <code>stdout</code>.</p>
<p>Microsoft compilers add a carriage return to newlines, and to compile the
program with this platform, the following line can be added to <code>main()</code> before
any code in order for the program to run correctly:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> _setmode<span class="op">(</span>_fileno<span class="op">(</span>stdout<span class="op">),</span> <span class="bn">0x8000</span><span class="op">);</span></span></code></pre></div>
<pre class="&lt;!---c--&gt;"><code> _setmode(_fileno(stdout), 0x8000);</code></pre>
<p>NOTE: see the <a href="prog.alt.c">alternate code</a> for this.</p>
<h3 id="known-issues">Known Issues</h3>
<p>The program uses a quite simple algorithm for detecting tone on and off events
+4 -4
View File
@@ -1,20 +1,20 @@
## To build:
```sh
```<!---sh-->
make
```
## To use:
```sh
```<!---sh-->
./prog
```
## Try:
```sh
```<!---sh-->
./try.sh
```
@@ -22,7 +22,7 @@ By default that will use `indent(1)` found by the shell `type -P indent` and
`sed(1)` found by the shell `type -P sed` but if you want to change these, say
to try a different beautifier, you can do it like:
```sh
```<!---sh-->
INDENT=bcpp ./try.sh
```
+4 -4
View File
@@ -141,15 +141,15 @@ Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlan
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">make</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<p>By default that will use <code>indent(1)</code> found by the shell <code>type -P indent</code> and
<code>sed(1)</code> found by the shell <code>type -P sed</code> but if you want to change these, say
to try a different beautifier, you can do it like:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a> <span class="va">INDENT</span><span class="op">=</span>bcpp <span class="ex">./try.sh</span></span></code></pre></div>
<pre class="&lt;!---sh--&gt;"><code> INDENT=bcpp ./try.sh</code></pre>
<p>which would change it to use <code>bcpp(1)</code> instead of <code>indent(1)</code>. Do similar for
<code>sed(1)</code> only use the name <code>SED</code>.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>