force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem has a recent enough version of `pandoc(1)`. We explain why we insist on `pandoc(1)`. version >= 3.1.12.2 in comments where the $PANDOC_MIN_VERSION is set. Added `--wrap=preserve` as a default argument to `pandoc(1)`. While this change will impact every HTML file generated, we believe this will improve the ability of someone to look at the generated HTML and correlate with the original markdown. Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17" to "1.4.3 2024-03-18". Performed `make www` to achieve all of the above and to generate HTML using the new `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+76
-115
@@ -130,8 +130,8 @@
|
||||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Don_Yang">Don Yang</a><br>
|
||||
Location: <a href="../../location.html#US">US</a> - <em>United States of
|
||||
America</em> (<em>United States</em>) <br><br></li>
|
||||
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -144,8 +144,7 @@ America</em> (<em>United States</em>) <br><br></li>
|
||||
<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#2019_yang">2019 yang bugs</a>.</p>
|
||||
<p>For more detailed information see <a href="../../bugs.html#2019_yang">2019 yang 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> sample_input.txt a b c d</span>
|
||||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
|
||||
@@ -161,8 +160,8 @@ href="../../bugs.html#2019_yang">2019 yang bugs</a>.</p>
|
||||
<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>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>Do you understand how this program works? You may have to go over and
|
||||
over the output again.</p>
|
||||
<p>Do you understand how this program works? You may have to go over and over the
|
||||
output again.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<h3 id="summary">Summary:</h3>
|
||||
<p>Scramble/unscramble to single file:</p>
|
||||
@@ -181,85 +180,74 @@ over the output again.</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="ex">./prog</span> input.txt <span class="kw">|</span> <span class="ex">ruby</span> prog.c</span></code></pre></div>
|
||||
<p>Input must be in UTF-8 encoding.</p>
|
||||
<h3 id="details">Details:</h3>
|
||||
<p>This is a text scrambling utility. To scramble text, specify input
|
||||
file name as the first argument:</p>
|
||||
<p>This is a text scrambling utility. To scramble text, specify input file name as
|
||||
the first argument:</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> input.txt <span class="op">></span> output.txt</span></code></pre></div>
|
||||
<p>If original input file was small enough to fit in your terminal, you
|
||||
can simply use <code>cat</code> to unscramble the output text.</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="fu">cat</span> output.txt</span></code></pre></div>
|
||||
<p>It might seem like nothing was scrambled, but you can try passing the
|
||||
output through <code>strings(1)</code> and see that most of the original
|
||||
strings are gone. What happened is that the original text has been
|
||||
shuffled with ANSI cursor positioning codes inserted in such a way that
|
||||
characters are printed in random order. This effect is more visible if
|
||||
there is a delay after each character is printed. For convenience, a
|
||||
utility is included in the source to output characters slowly:</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> input.txt <span class="kw">|</span> <span class="ex">ruby</span> prog.c</span></code></pre></div>
|
||||
<p>Scrambling order is deterministic, but you can reshuffle the output
|
||||
by piping it through the same utility again, by specifying
|
||||
<code>-</code> as the first argument:</p>
|
||||
<div class="sourceCode" id="cb12"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt <span class="kw">|</span> <span class="ex">./prog</span> <span class="at">-</span> <span class="kw">|</span> <span class="ex">./prog</span> <span class="at">-</span> <span class="kw">|</span> <span class="ex">...</span></span></code></pre></div>
|
||||
<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="fu">cat</span> output.txt</span></code></pre></div>
|
||||
<p>It might seem like nothing was scrambled, but you can try passing the output
|
||||
through <code>strings(1)</code> and see that most of the original strings are gone. What
|
||||
happened is that the original text has been shuffled with ANSI cursor
|
||||
positioning codes inserted in such a way that characters are printed in random
|
||||
order. This effect is more visible if there is a delay after each character is
|
||||
printed. For convenience, a utility is included in the source to output
|
||||
characters slowly:</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> input.txt <span class="kw">|</span> <span class="ex">ruby</span> prog.c</span></code></pre></div>
|
||||
<p>Scrambling order is deterministic, but you can reshuffle the output by
|
||||
piping it through the same utility again, by specifying <code>-</code> as the
|
||||
first argument:</p>
|
||||
<div class="sourceCode" id="cb12"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt <span class="kw">|</span> <span class="ex">./prog</span> <span class="at">-</span> <span class="kw">|</span> <span class="ex">./prog</span> <span class="at">-</span> <span class="kw">|</span> <span class="ex">...</span></span></code></pre></div>
|
||||
<p>You can also split the input to multiple files, each getting a subset
|
||||
of the original input characters:</p>
|
||||
<div class="sourceCode" id="cb13"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt output1.txt output2.txt ...</span>
|
||||
<div class="sourceCode" id="cb13"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt output1.txt output2.txt ...</span>
|
||||
<span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cat</span> output1.txt output2.txt ... <span class="op">></span> unscrambled.txt</span></code></pre></div>
|
||||
<p>You can only unscramble files with <code>cat</code> if the input fits
|
||||
in a single terminal screen. If you don’t know what will be the terminal
|
||||
size of the recipient, note that <code>prog.c</code> will fit in a 80x25
|
||||
terminal, so a good guideline is to pick files that have fewer rows and
|
||||
columns than <code>prog.c</code>.</p>
|
||||
<p>For files that are larger than your terminal window, <code>cat</code>
|
||||
will not be sufficient for unscrambling because any scrolling causes the
|
||||
character positions to be misaligned. But fear not, this utility also
|
||||
includes unscrambling functionality. If no argument is specified, input
|
||||
will be read through <code>stdin</code> and unscrambled to
|
||||
<code>stdout</code>:</p>
|
||||
<div class="sourceCode" id="cb14"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> scrambled.txt <span class="op">></span> unscrambled.txt</span></code></pre></div>
|
||||
<p>You can only unscramble files with <code>cat</code> if the input fits in a single
|
||||
terminal screen. If you don’t know what will be the terminal size of
|
||||
the recipient, note that <code>prog.c</code> will fit in a 80x25 terminal, so a
|
||||
good guideline is to pick files that have fewer rows and columns than
|
||||
<code>prog.c</code>.</p>
|
||||
<p>For files that are larger than your terminal window, <code>cat</code> will not be
|
||||
sufficient for unscrambling because any scrolling causes the character
|
||||
positions to be misaligned. But fear not, this utility also includes
|
||||
unscrambling functionality. If no argument is specified, input will
|
||||
be read through <code>stdin</code> and unscrambled to <code>stdout</code>:</p>
|
||||
<div class="sourceCode" id="cb14"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> scrambled.txt <span class="op">></span> unscrambled.txt</span></code></pre></div>
|
||||
<p>Where this is useful is that if you scramble the input to multiple
|
||||
files and unscramble each output file individually, those output files
|
||||
can be printed on transparencies and distributed separately.</p>
|
||||
<div class="sourceCode" id="cb15"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt output1.txt output2.txt output3.txt</span>
|
||||
files and unscramble each output file individually, those output
|
||||
files can be printed on transparencies and distributed separately.</p>
|
||||
<div class="sourceCode" id="cb15"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt output1.txt output2.txt output3.txt</span>
|
||||
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> output1.txt <span class="op">></span> layer1.txt</span>
|
||||
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> output2.txt <span class="op">></span> layer2.txt</span>
|
||||
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> output3.txt <span class="op">></span> layer3.txt</span></code></pre></div>
|
||||
<p>In other words, this is a utility for facilitating <a
|
||||
href="https://en.wikipedia.org/wiki/Visual_cryptography">visual
|
||||
cryptography</a>.</p>
|
||||
<p>In other words, this is a utility for facilitating
|
||||
<a href="https://en.wikipedia.org/wiki/Visual_cryptography">visual cryptography</a>.</p>
|
||||
<p>This utility can also be used just for removing trailing whitespaces
|
||||
and expanding tabs to 8 spaces.</p>
|
||||
<div class="sourceCode" id="cb16"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt <span class="kw">|</span> <span class="ex">./prog</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb16"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt <span class="kw">|</span> <span class="ex">./prog</span></span></code></pre></div>
|
||||
<h3 id="features">Features:</h3>
|
||||
<h4 id="utf-8-support">UTF-8 support:</h4>
|
||||
<p>A simple text scrambling utility might not have required a screenful
|
||||
of code, but this particular one natively supports UTF-8. Specifically:
|
||||
individual UTF-8 byte sequences will not be split into broken ones, and
|
||||
the utility is aware of full-width versus half-width differences such
|
||||
that the cursor is positioned correctly for most CJK input. <a
|
||||
href="sample_input.txt">sample_input.txt</a> demonstrates this feature
|
||||
with a mix of Basic Latin and Japanese characters.</p>
|
||||
of code, but this particular one natively supports UTF-8.
|
||||
Specifically: individual UTF-8 byte sequences will not be split into
|
||||
broken ones, and the utility is aware of full-width versus half-width
|
||||
differences such that the cursor is positioned correctly for most CJK
|
||||
input. <a href="sample_input.txt">sample_input.txt</a> demonstrates this feature with a mix of
|
||||
Basic Latin and Japanese characters.</p>
|
||||
<p>Output cursor positions will most definitely be wrong for inputs
|
||||
containing combining characters and right-to-left text, but it should be
|
||||
possible to unscramble those text back to the original using this same
|
||||
utility, since the utility is self-consistent in how cursor positions
|
||||
are handled.</p>
|
||||
containing combining characters and right-to-left text, but it should
|
||||
be possible to unscramble those text back to the original using this
|
||||
same utility, since the utility is self-consistent in how cursor
|
||||
positions are handled.</p>
|
||||
<h3 id="error-handling">Error handling</h3>
|
||||
<p>If any file can not be opened for reading or writing, an error is
|
||||
printed to <code>stderr</code>, and the utility will exit with nonzero
|
||||
status.</p>
|
||||
printed to <code>stderr</code>, and the utility will exit with nonzero status.</p>
|
||||
<p>If there isn’t enough memory, the utility will likely crash.</p>
|
||||
<p>If input contains CR-LF end of line sequences, those <code>CR</code>s
|
||||
are silently dropped. In fact, most control codes are silently ignored
|
||||
except line feeds (preserved) and tabs (expanded to 8 spaces).</p>
|
||||
<p>If input contains CR-LF end of line sequences, those <code>CR</code>s are silently
|
||||
dropped. In fact, most control codes are silently ignored except line
|
||||
feeds (preserved) and tabs (expanded to 8 spaces).</p>
|
||||
<h3 id="compatibility">Compatibility</h3>
|
||||
<p>Verified to work and compiles without warnings on these
|
||||
environments:</p>
|
||||
<p>Verified to work and compiles without warnings on these environments:</p>
|
||||
<ul>
|
||||
<li>gcc 7.3.0 on Linux</li>
|
||||
<li>gcc 7.4.0 on Cygwin</li>
|
||||
@@ -268,72 +256,45 @@ environments:</p>
|
||||
<li>gcc 4.8.4 on Linux</li>
|
||||
</ul>
|
||||
<h3 id="full-version">Full version</h3>
|
||||
<p>I tried really hard to make <code>prog.c</code> fit in a 80x25
|
||||
terminal without wrapping. If I were not constrained by space, I would
|
||||
have made an ASCII art out of it. <a href="violet.c">violet.c</a> is
|
||||
that program, and also comes with the minor benefit of supporting lines
|
||||
longer than a million columns depending on <code>sizeof(int)</code>.</p>
|
||||
<p>Violet is named after <a
|
||||
href="https://en.wikipedia.org/wiki/Violet_Evergarden">Violet
|
||||
Evergarden</a> in the story with the same name, the character who is
|
||||
highly skilled in writing letters.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
|
||||
License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
|
||||
Reserved. You are free to share and adapt this file under the terms of
|
||||
this license:</p>
|
||||
<p>I tried really hard to make <code>prog.c</code> fit in a 80x25 terminal without wrapping.
|
||||
If I were not constrained by space, I would have made an ASCII art out of it.
|
||||
<a href="violet.c">violet.c</a> is that program, and also comes with the minor benefit of
|
||||
supporting lines longer than a million columns depending on <code>sizeof(int)</code>.</p>
|
||||
<p>Violet is named after <a href="https://en.wikipedia.org/wiki/Violet_Evergarden">Violet
|
||||
Evergarden</a> in the story with
|
||||
the same name, the character who is highly skilled in writing letters.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
You are free to share and adapt this file under the terms of this license:</p>
|
||||
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
|
||||
<p>For more information, see:
|
||||
https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||||
|
||||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
<h1 id="inventory-for-2019yang"><a name="inventory"></a>Inventory for
|
||||
2019/yang</h1>
|
||||
<h1 id="inventory-for-2019yang"><a name="inventory"></a>Inventory for 2019/yang</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/prog.c">prog.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/prog.orig.c">prog.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/ioccc.txt">ioccc.txt</a>
|
||||
- sample input</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/sample_input.txt">sample_input.txt</a>
|
||||
- sample input</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/try.sh">try.sh</a>
|
||||
- how to run</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/violet.c">violet.c</a>
|
||||
- source formatter as ASCII Violet Evergarden</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/prog.c">prog.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/prog.orig.c">prog.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/ioccc.txt">ioccc.txt</a> - sample input</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/sample_input.txt">sample_input.txt</a> - sample input</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/try.sh">try.sh</a> - how to run</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/violet.c">violet.c</a> - source formatter as ASCII Violet Evergarden</li>
|
||||
<li><a href="spoiler.html">spoiler.html</a> - SPOILER WARNING</li>
|
||||
<li><a href="2019_yang.tar.bz2">2019_yang.tar.bz2</a> - download entry
|
||||
source</li>
|
||||
<li><a href="2019_yang.tar.bz2">2019_yang.tar.bz2</a> - download entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/.gitignore">.gitignore</a>
|
||||
- list of files that should not be committed under git</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/README.md">README.md</a>
|
||||
- markdown source for index.html</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/README.md">README.md</a> - markdown source for index.html</li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
Reference in new issue
Block a user