fix problematic HTML caused by certain trailing backslashes

In cases that are **outside of a markdown code block**,
a markdown line with ending in a tailing "\" can generate
problematic HTML.

We certain trailing backslashes outside of a markdown code block
with "<br>" HTML elements, or in some cases eliminated the
need for a trailing backslash.

In a few cases some unnecessary trailing backslashes inside
of a markdown code block were removed.

The following markdown files were changed in this commit:

```
1990/dds/README.md
1990/jaw/README.md
1991/ant/README.md
1991/rince/README.md
1991/westley/README.md
1992/vern/README.md
1992/westley/README.md
1998/schweikh1/README.md
2004/anonymous/README.md
2005/sykes/README.md
2006/toledo2/README.md
2011/toledo/README.md
2012/endoh2/README.md
2012/tromp/README.md
2013/robison/README.md
2015/hou/README.md
2015/howe/README.md
2015/schweikhardt/README.md
2018/burton1/README.md
2018/burton2/README.md
2018/ferguson/README.md
2018/vokes/README.md
2020/ferguson1/README.md
```

Performed `make www` to test these changes.
This commit is contained in:
Landon Curt Noll committed 2024-04-17 00:25:09 -07:00
1 parent 1785da1728
commit 4c3649a3c1
47 files changed
+481 -502

No files matched your search

+9 -7
View File
@@ -219,13 +219,15 @@ It pre-dates `varargs.h`, and assembly was the only way to gain access to the
variable argument types. The first edition _The C Programming Language_, 1978,
page 71, remarks:
> By the way, there is no entirely satisfactory way to write a portable function
> that accepts a variable number of arguments, because there is no portable way
> for the called function to determine how many arguments where actually passed
> to it in a given call.
> ...\
> `printf`, the most common C function with a variable number of arguments,
> ... is also non-portable and must be modified for different environments.
```
By the way, there is no entirely satisfactory way to write a portable function
that accepts a variable number of arguments, because there is no portable way
for the called function to determine how many arguments where actually passed
to it in a given call.
...
`printf`, the most common C function with a variable number of arguments,
... is also non-portable and must be modified for different environments.
```
It is fascinating to explore the roots of C through the history of the operating
system it was birthed within. C is often criticized as a difficult, inscrutable
+7 -9
View File
@@ -298,15 +298,13 @@ shortest code that compiles and runs correctly in Ancient UNIX.</p>
It pre-dates <code>varargs.h</code>, and assembly was the only way to gain access to the
variable argument types. The first edition <em>The C Programming Language</em>, 1978,
page 71, remarks:</p>
<blockquote>
<p>By the way, there is no entirely satisfactory way to write a portable function
that accepts a variable number of arguments, because there is no portable way
for the called function to determine how many arguments where actually passed
to it in a given call.
…<br />
<code>printf</code>, the most common C function with a variable number of arguments,
… is also non-portable and must be modified for different environments.</p>
</blockquote>
<pre><code> By the way, there is no entirely satisfactory way to write a portable function
that accepts a variable number of arguments, because there is no portable way
for the called function to determine how many arguments where actually passed
to it in a given call.
...
`printf`, the most common C function with a variable number of arguments,
... is also non-portable and must be modified for different environments.</code></pre>
<p>It is fascinating to explore the roots of C through the history of the operating
system it was birthed within. C is often criticized as a difficult, inscrutable
language, but as this contest demonstrates, this is in parody. <em>Shell-gol</em> is
+35 -35
View File
@@ -36,45 +36,45 @@ What is this program weighing and how much does it weigh?
### tac - tokenize and count C and derivative languages:
`tac` computes C program size\
(obfuscated / otherwise)\
by splitting code as tokens small,\
ignoring space, then counting all.\
`tac` computes C program size<br>
(obfuscated / otherwise)<br>
by splitting code as tokens small,<br>
ignoring space, then counting all.<br>
It tries quite hard to act the same\
as counting tool of I-OCCC fame.\
Some bugs were fixed, it's faster too,\
and does more things, just add some glue!\
It tries quite hard to act the same<br>
as counting tool of I-OCCC fame.<br>
Some bugs were fixed, it's faster too,<br>
and does more things, just add some glue!<br>
It does far more than print the size:\
the token part's a better prize!\
With each upon on a single line,\
how many things can you design?\
It does far more than print the size:<br>
the token part's a better prize!<br>
With each upon on a single line,<br>
how many things can you design?<br>
Included is a keyword sorter,\
de-obfuscator, freq reporter.\
With code produced as little parts,\
just add your own creative arts.\
Included is a keyword sorter,<br>
de-obfuscator, freq reporter.<br>
With code produced as little parts,<br>
just add your own creative arts.<br>
But first you have to figure out\
the braces part, without a doubt!\
And then the code - it isn't easy:\
for as else? That's rather cheesy!\
But first you have to figure out<br>
the braces part, without a doubt!<br>
And then the code - it isn't easy:<br>
for as else? That's rather cheesy!<br>
The rest of it is standard fare:\
expressions strange, the globals bare,\
confusing symbols one and oh,\
and precedence you have to know.\
The rest of it is standard fare:<br>
expressions strange, the globals bare,<br>
confusing symbols one and oh,<br>
and precedence you have to know.<br>
The keyword list was made external,\
because of standards change eternal.\
Thus other languages can now,\
be counted just like C, somehow!\
The keyword list was made external,<br>
because of standards change eternal.<br>
Thus other languages can now,<br>
be counted just like C, somehow!<br>
I hope you find this code obscure\
enough to win, and thus procure\
a public place for all to see\
how badly I can butcher C!\
I hope you find this code obscure<br>
enough to win, and thus procure<br>
a public place for all to see<br>
how badly I can butcher C!<br>
### Said another way....
@@ -270,9 +270,9 @@ language_. It really is this easy with `tac`:
* I assume you noticed the [braces][2]?
_Every brace is sacred,\
Every brace is great.\
If a brace is wasted,\
_Every brace is sacred,<br>
Every brace is great.<br>
If a brace is wasted,<br>
Clang gets quite irate_.
* Keywords follow the 2010s top five, without the `if`, for interesting flow control.
+35 -43
View File
@@ -164,46 +164,38 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
What is this program weighing and how much does it weigh?</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="tac---tokenize-and-count-c-and-derivative-languages">tac - tokenize and count C and derivative languages:</h3>
<p><code>tac</code> computes C program size<br />
(obfuscated / otherwise)<br />
by splitting code as tokens small,<br />
ignoring space, then counting all.<br />
</p>
<p>It tries quite hard to act the same<br />
as counting tool of I-OCCC fame.<br />
Some bugs were fixed, it’s faster too,<br />
and does more things, just add some glue!<br />
</p>
<p>It does far more than print the size:<br />
the token part’s a better prize!<br />
With each upon on a single line,<br />
how many things can you design?<br />
</p>
<p>Included is a keyword sorter,<br />
de-obfuscator, freq reporter.<br />
With code produced as little parts,<br />
just add your own creative arts.<br />
</p>
<p>But first you have to figure out<br />
the braces part, without a doubt!<br />
And then the code - it isn’t easy:<br />
for as else? That’s rather cheesy!<br />
</p>
<p>The rest of it is standard fare:<br />
expressions strange, the globals bare,<br />
confusing symbols one and oh,<br />
and precedence you have to know.<br />
</p>
<p>The keyword list was made external,<br />
because of standards change eternal.<br />
Thus other languages can now,<br />
be counted just like C, somehow!<br />
</p>
<p>I hope you find this code obscure<br />
enough to win, and thus procure<br />
a public place for all to see<br />
how badly I can butcher C!<br />
</p>
<p><code>tac</code> computes C program size<br>
(obfuscated / otherwise)<br>
by splitting code as tokens small,<br>
ignoring space, then counting all.<br></p>
<p>It tries quite hard to act the same<br>
as counting tool of I-OCCC fame.<br>
Some bugs were fixed, it’s faster too,<br>
and does more things, just add some glue!<br></p>
<p>It does far more than print the size:<br>
the token part’s a better prize!<br>
With each upon on a single line,<br>
how many things can you design?<br></p>
<p>Included is a keyword sorter,<br>
de-obfuscator, freq reporter.<br>
With code produced as little parts,<br>
just add your own creative arts.<br></p>
<p>But first you have to figure out<br>
the braces part, without a doubt!<br>
And then the code - it isn’t easy:<br>
for as else? That’s rather cheesy!<br></p>
<p>The rest of it is standard fare:<br>
expressions strange, the globals bare,<br>
confusing symbols one and oh,<br>
and precedence you have to know.<br></p>
<p>The keyword list was made external,<br>
because of standards change eternal.<br>
Thus other languages can now,<br>
be counted just like C, somehow!<br></p>
<p>I hope you find this code obscure<br>
enough to win, and thus procure<br>
a public place for all to see<br>
how badly I can butcher C!<br></p>
<h3 id="said-another-way.">Said another way….</h3>
<p><code>tac</code> is the inverse of <code>cat</code>(1): it un-concatenates its input into C tokens,
writing the token stream to <code>stdout</code>. There are options to suppress the token
@@ -353,9 +345,9 @@ language</em>. It really is this easy with <code>tac</code>:</p>
<h3 id="on-the-question-of-obfuscation">On the question of obfuscation:</h3>
<ul>
<li><p>I assume you noticed the <a href="https://www.youtube.com/watch?v=fUspLVStPbk&amp;start=53" title="Meaning of Life">braces</a>?</p>
<p><em>Every brace is sacred,<br />
Every brace is great.<br />
If a brace is wasted,<br />
<p><em>Every brace is sacred,<br>
Every brace is great.<br>
If a brace is wasted,<br>
Clang gets quite irate</em>.</p></li>
<li><p>Keywords follow the 2010s top five, without the <code>if</code>, for interesting flow control.</p></li>
<li><p>Sometimes a <code>for</code> can be an <code>else</code> - <a href="https://www.youtube.com/watch?v=OHVjs4aobqs" title="Inconceivable">inconceivable</a>!</p></li>
+6 -6
View File
@@ -223,7 +223,7 @@ monkey; I thought the monkey had it too easy: unlike his limited keyboard I have
`isprint()` returns non-zero except that only capital letters are included;
the file [prog.alt.c](prog.alt.c) has a slightly smaller keyboard. There are some
additional features I have added (including two Easter eggs); amongst others:
ability to change the target string and maximum length. See\
ability to change the target string and maximum length. See
**[How it works](#how)**, **[Hints](#hints)** and **[How to build](#build)** for
more details.
@@ -465,8 +465,8 @@ If you do one of:
```
It will search for `MONKEY` in both cases; in other words it's the last one.
If the string is too long given the value of `S` (see\
**[How to build](#build)**) it will be truncated.
If the string is too long given the value of `S` (see **[How to build](#build)**)
it will be truncated.
If you actually do want to search for a string starting with a `-` you must
disable further parsing of options by using the `-` option itself; for
@@ -492,7 +492,7 @@ examples of the last set of three above are equivalent i.e. the following two
are equivalent:
```
-q-\
-q-
-q --
```
@@ -735,7 +735,7 @@ people. Take the following invocations:
(1) $ echo test > test
(2) $ ./weasel test
(3) $ ./weasel < test
(4) $ cat test | ./weasel\
(4) $ cat test | ./weasel
(5) $ < test-strings.txt ./weasel
(6) $ cat | ./weasel
```
@@ -819,7 +819,7 @@ Skip to [Obfuscation](#obfuscation).
There is a type of input error, as I said, that might appear to be a bug. What
actually is going on though is due to a technicality on how spaces are printed
and the fact the program does not accept spaces other than a literal space\
and the fact the program does not accept spaces other than a literal space
` `; when a character in the string to be found isn't in the keyboard the
program prints an error message and then exits (returning 1). But since the
keyboard doesn't have `'\n'` if you were to type a `'` and send a
+6 -6
View File
@@ -305,7 +305,7 @@ monkey; I thought the monkey had it too easy: unlike his limited keyboard I have
<code>isprint()</code> returns non-zero except that only capital letters are included;
the file <a href="prog.alt.c">prog.alt.c</a> has a slightly smaller keyboard. There are some
additional features I have added (including two Easter eggs); amongst others:
ability to change the target string and maximum length. See<br />
ability to change the target string and maximum length. See
<strong><a href="#how">How it works</a></strong>, <strong><a href="#hints">Hints</a></strong> and <strong><a href="#build">How to build</a></strong> for
more details.</p>
<p>In its simplest invocation this program will work its way (using a genetic
@@ -481,8 +481,8 @@ specially by your shell e.g. parentheses. For instance if you just want to find
<pre><code> ./weasel &quot;METHINKS IT IS A&quot; &quot;MONKEY&quot;
./weasel METHINKS IT IS A MONKEY</code></pre>
<p>It will search for <code>MONKEY</code> in both cases; in other words it’s the last one.
If the string is too long given the value of <code>S</code> (see<br />
<strong><a href="#build">How to build</a></strong>) it will be truncated.</p>
If the string is too long given the value of <code>S</code> (see <strong><a href="#build">How to build</a></strong>)
it will be truncated.</p>
<p>If you actually do want to search for a string starting with a <code>-</code> you must
disable further parsing of options by using the <code>-</code> option itself; for
example if you were to do any of:</p>
@@ -497,7 +497,7 @@ longer parse additional options: only target strings if anything left on the
command line. Because of the joining of arguments this means that the first two
examples of the last set of three above are equivalent i.e. the following two
are equivalent:</p>
<pre><code> -q-\
<pre><code> -q-
-q --</code></pre>
<p>As for the caveat I referenced what does the following do?</p>
<pre><code> ./weasel -qr 5</code></pre>
@@ -660,7 +660,7 @@ people. Take the following invocations:</p>
<pre><code> (1) $ echo test &gt; test
(2) $ ./weasel test
(3) $ ./weasel &lt; test
(4) $ cat test | ./weasel\
(4) $ cat test | ./weasel
(5) $ &lt; test-strings.txt ./weasel
(6) $ cat | ./weasel</code></pre>
<p>Only the first invocation of <code>./weasel</code> will search for <code>TEST</code> because
@@ -718,7 +718,7 @@ example shows (but the strings will still only be read from the
<p>Skip to <a href="#obfuscation">Obfuscation</a>.</p>
<p>There is a type of input error, as I said, that might appear to be a bug. What
actually is going on though is due to a technicality on how spaces are printed
and the fact the program does not accept spaces other than a literal space<br />
and the fact the program does not accept spaces other than a literal space
<code></code>; when a character in the string to be found isn’t in the keyboard the
program prints an error message and then exits (returning 1). But since the
keyboard doesn’t have <code>'\n'</code> if you were to type a <code>'</code> and send a
+1 -2
View File
@@ -104,8 +104,7 @@ Limitations](#issues-and-limitations).
To build:
```
${CC} -o prog prog.c -std=c11 -O3 \
-Wall -Wextra -pedantic -Wno-missing-prototypes
${CC} -o prog prog.c -std=c11 -O3 -Wall -Wextra -pedantic -Wno-missing-prototypes
```
`-Wno-missing-prototypes` is necessary because there aren't any
+1 -2
View File
@@ -209,8 +209,7 @@ implementation of counting sort, which sorts each group.</p>
Limitations</a>.</p>
<h3 id="building">Building:</h3>
<p>To build:</p>
<pre><code> ${CC} -o prog prog.c -std=c11 -O3 \
-Wall -Wextra -pedantic -Wno-missing-prototypes</code></pre>
<pre><code> ${CC} -o prog prog.c -std=c11 -O3 -Wall -Wextra -pedantic -Wno-missing-prototypes</code></pre>
<p><code>-Wno-missing-prototypes</code> is necessary because there aren’t any
prototypes. (They would put the program well over the size limit.)</p>
<p>Note: The program can also be built with <code>-std=c99</code> or <code>-std=c89</code>.</p>