From c50835517f2eae12afae743f7dcd88c4a1cff52c Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 2 Nov 2024 10:21:50 -0700 Subject: [PATCH] Fix html lint (W3C Nu) errors In the case of two which had an abstract (.entry.json file) that includes one (in one case) '<' or two (in another case) '<'s a markdown code block had to be used as otherwise the abstract would have to have a < which looks even worse. This is not ideal but if we want it to pass lint this is what has to be done. Use of json \uxxxx won't work as that encodes it to < literally. In the case of 2018/burton[12] the author had a section called Coda. This conflicted with the problem that all generated html files have such a section. To fix this problem I renamed it 'Final remarks'. Not ideal but at least it now passes as valid. There were a number of different kinds of problems and in one case the symbols < and > could be fixed by changing it to a code block (which it should have been anyway) - that was 2020/ferguson1 I think. --- 1986/bright/.entry.json | 2 +- 1986/bright/index.html | 2 +- 1988/litmaath/.entry.json | 2 +- 1988/litmaath/index.html | 2 +- 1992/albert/.entry.json | 2 +- 1992/albert/index.html | 2 +- 2018/burton1/README.md | 2 +- 2018/burton1/index.html | 2 +- 2018/burton2/README.md | 2 +- 2018/burton2/index.html | 2 +- 2018/ferguson/README.md | 8 ++++---- 2018/ferguson/index.html | 10 ++++------ 2020/ferguson1/terminals.html | 2 +- 2020/ferguson1/terminals.md | 2 +- 14 files changed, 20 insertions(+), 22 deletions(-) diff --git a/1986/bright/.entry.json b/1986/bright/.entry.json index f44d465a0..042fa14cc 100644 --- a/1986/bright/.entry.json +++ b/1986/bright/.entry.json @@ -6,7 +6,7 @@ "dir" : "bright", "entry_id" : "1986_bright", "title" : "1986.bright", - "abstract" : "hex dump with cpp compressed that uses lots of << for constants", + "abstract" : "hex dump with cpp compressed that uses lots of `<<` for constants", "author_set" : [ { "author_handle" : "Walter_Bright" diff --git a/1986/bright/index.html b/1986/bright/index.html index 3a57d90d9..718adba2b 100644 --- a/1986/bright/index.html +++ b/1986/bright/index.html @@ -406,7 +406,7 @@

The International Obfuscated C Code Contest

1986/bright - Most useful obfuscation

-

hex dump with cpp compressed that uses lots of << for constants

+

hex dump with cpp compressed that uses lots of `<<` for constants

diff --git a/1988/litmaath/.entry.json b/1988/litmaath/.entry.json index 3618bb872..ffe40f4fc 100644 --- a/1988/litmaath/.entry.json +++ b/1988/litmaath/.entry.json @@ -6,7 +6,7 @@ "dir" : "litmaath", "entry_id" : "1988_litmaath", "title" : "1988.litmaath", - "abstract" : "sorts each arg using only argc argv and 'while()'", + "abstract" : "sorts each arg using only argc argv and 'while(cond)'", "author_set" : [ { "author_handle" : "Maarten_Litmaath" diff --git a/1988/litmaath/index.html b/1988/litmaath/index.html index cb1a95f9b..39a448fd7 100644 --- a/1988/litmaath/index.html +++ b/1988/litmaath/index.html @@ -406,7 +406,7 @@

The International Obfuscated C Code Contest

1988/litmaath - Best small program

-

sorts each arg using only argc argv and 'while()'

+

sorts each arg using only argc argv and 'while(cond)'

diff --git a/1992/albert/.entry.json b/1992/albert/.entry.json index c1afebd17..e7e251d5b 100644 --- a/1992/albert/.entry.json +++ b/1992/albert/.entry.json @@ -6,7 +6,7 @@ "dir" : "albert", "entry_id" : "1992_albert", "title" : "1992.albert", - "abstract" : "factors multi-precision numbers with factors < MAX_LONG", + "abstract" : "factors multi-precision numbers with factors `< MAX_LONG`", "author_set" : [ { "author_handle" : "Albert_van_der_Horst" diff --git a/1992/albert/index.html b/1992/albert/index.html index c44e9d713..fd27e4f1f 100644 --- a/1992/albert/index.html +++ b/1992/albert/index.html @@ -406,7 +406,7 @@

The International Obfuscated C Code Contest

1992/albert - Most useful program

-

factors multi-precision numbers with factors < MAX_LONG

+

factors multi-precision numbers with factors `< MAX_LONG`

diff --git a/2018/burton1/README.md b/2018/burton1/README.md index 8469a0902..4ff599fed 100644 --- a/2018/burton1/README.md +++ b/2018/burton1/README.md @@ -251,7 +251,7 @@ So which version is the shortest, portable hex dump? * 113 works on Ancient UNIX and the portable C compiler. * 119 works on all platforms, including the original Ritchie PDP-11 C compiler. -### Coda: +### Final remarks: Clearly, the smallest possible program violates modern best practice. It is not even possible to compile cleanly, but it will compile correctly. diff --git a/2018/burton1/index.html b/2018/burton1/index.html index 1fc4a3040..4e9f54de6 100644 --- a/2018/burton1/index.html +++ b/2018/burton1/index.html @@ -618,7 +618,7 @@ and efficient expression.

  • 113 works on Ancient UNIX and the portable C compiler.
  • 119 works on all platforms, including the original Ritchie PDP-11 C compiler.
  • -

    Coda:

    +

    Final remarks:

    Clearly, the smallest possible program violates modern best practice. It is not even possible to compile cleanly, but it will compile correctly.

    Included is prog.alt.c, a modern C implementation that is – diff --git a/2018/burton2/README.md b/2018/burton2/README.md index aef410814..716c70586 100644 --- a/2018/burton2/README.md +++ b/2018/burton2/README.md @@ -391,7 +391,7 @@ Thus: cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW=\"keywords\" -o prog prog.c ``` -### Coda: +### Final remarks: [Cody Boone Ferguson](../../authors.html#Cody_Boone_Ferguson) was relentless in his pursuit of bugs. Thanks to his reports, the version of [unob.sh](%%REPO_URL%%/2018/burton2/unob.sh) is stronger, diff --git a/2018/burton2/index.html b/2018/burton2/index.html index e4da132b2..f55bfed7b 100644 --- a/2018/burton2/index.html +++ b/2018/burton2/index.html @@ -726,7 +726,7 @@ for obfuscation. Thus -trigraphs -Wno-trigraphs (which is also humo NB: This is not a portability concern, the one string holds only printable ASCII characters.

    Thus:

        cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW=\"keywords\" -o prog prog.c
    -

    Coda:

    +

    Final remarks:

    Cody Boone Ferguson was relentless in his pursuit of bugs. Thanks to his reports, the version of unob.sh is stronger, tac groks digraphs, tokenfix.sh corrects for missing digraphs diff --git a/2018/ferguson/README.md b/2018/ferguson/README.md index d39e8aa97..1bc06eb08 100644 --- a/2018/ferguson/README.md +++ b/2018/ferguson/README.md @@ -117,7 +117,7 @@ If you find yourself in an evolutionary dead end, try: 0. Preface 1. What it is 2. How it works -3. Hints (Keyboards, Options, Obfuscation, Example Invocations) +3. Hints (Keyboards, Options, Easter egg, Example Invocations) 4. Obfuscation (Techniques, Beauty) 5. How to build (S and N Constants, Compilation, Portability, Installing) 6. Final thoughts @@ -558,13 +558,13 @@ are only parsed if the first character is `-` and if the parser hasn't seen the `-` - *in an earlier element of `argv`. This is not a bug!* -

    -### Obfuscation +
    +### Easter egg
    Skip to [Example Invocations](#invocations). -The Easter egg: Since Dawkins references the [Infinite Monkey Theorem][] it +The Easter egg: since Dawkins references the [Infinite Monkey Theorem][] it simulates a monkey using a typewriter! This mode has the following changes: Selection is omitted; this means no sorting by fitness score (*each offspring diff --git a/2018/ferguson/index.html b/2018/ferguson/index.html index ee03f52b8..46d00852d 100644 --- a/2018/ferguson/index.html +++ b/2018/ferguson/index.html @@ -513,7 +513,7 @@ while using more Cenozoic minded code migration, read rpm.htm
  • Preface
  • What it is
  • How it works
  • -
  • Hints (Keyboards, Options, Obfuscation, Example Invocations)
  • +
  • Hints (Keyboards, Options, Easter egg, Example Invocations)
  • Obfuscation (Techniques, Beauty)
  • How to build (S and N Constants, Compilation, Portability, Installing)
  • Final thoughts
  • @@ -825,9 +825,9 @@ itself) and then the target string would literally be set to -r- for option parsing. In other words options are only parsed if the first character is - and if the parser hasn’t seen the - - in an earlier element of argv. This is not a bug!

    -

    Obfuscation

    +

    Easter egg

    Skip to Example Invocations.

    -

    The Easter egg: Since Dawkins references the Infinite Monkey Theorem it +

    The Easter egg: since Dawkins references the Infinite Monkey Theorem it simulates a monkey using a typewriter! This mode has the following changes:

    Selection is omitted; this means no sorting by fitness score (each offspring is initially set to be the first two in the list) but do pseudo-randomly @@ -1048,9 +1048,7 @@ invalid character ('\n' itself which means another line break) and finally the closing '. Specifically isspace() characters aren’t distinctly seen like a letter, digit or symbol is: isprint('\n') == 0 && isspace('\n') == 1. You can add these characters but the output will be rather confusing and hard to read.

    -
    -

    4. Obfuscation

    -
    +

    4. Obfuscation

    Techniques

    Skip to Beauty.

    The following might be some of the techniques used in this entry:

    diff --git a/2020/ferguson1/terminals.html b/2020/ferguson1/terminals.html index d0fa78962..8cc8c691e 100644 --- a/2020/ferguson1/terminals.html +++ b/2020/ferguson1/terminals.html @@ -568,7 +568,7 @@ even just the reset command.

    The Linux man page says:

    You might have to run the reset tool like:

    -

    reset

    +

    <LF>reset<LF>

    (the line-feed character is normally control-J) to get the terminal to work, as carriage-return may no longer work in the abnormal state.

    diff --git a/2020/ferguson1/terminals.md b/2020/ferguson1/terminals.md index 21b924d25..ba432d17c 100644 --- a/2020/ferguson1/terminals.md +++ b/2020/ferguson1/terminals.md @@ -193,7 +193,7 @@ The Linux man page says: > You might have to run the `reset` tool like: > -> reset +> `reset` > > (the line-feed character is normally control-J) to get the terminal to work, as carriage-return may no longer work in the abnormal state.