From 92139c55d75dd60e7ddc2e6cf76e446d561285f3 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Sun, 7 Jul 2024 09:53:56 -0700
Subject: [PATCH] Move 199[1-3]/ant and 2015/howe alt code
The unobfuscated code, which was put in deobfuscated/, has been turned
into alt code. In one case the already existing alt code was made alt2
and the unobfuscated code was alt. In the case of the ones with two C
files there, the one that did not require modification (to compile in
modern systems) were used as those are original.
In a few cases these changes suggested additional files: a test suite
Makefile for the alt code, a try.alt.sh script and maybe some other
things besides.
The bug status was updated for 2015/howe with a known bug: in particular
the test scripts do not work (at least not completely).
In the manifest all references (except for a file name that has not been
renamed - at least not yet) of 'deobfuscated' to 'unobfuscated': a minor
detail that might not matter much but it sounds ever so slightly better
(maybe). These other entries that had an entry_text change were
1995/garry and 2020/endoh2. Rebuilt .entry.json and index.html files for
this (and in the case of the moved code the index.html files also had to
be changed for that in addition to the Makefiles).
---
1991/ant/.entry.json | 22 +-
1991/ant/Makefile | 35 +-
1991/ant/README.md | 40 +-
1991/ant/ant.alt.c | 395 ++++++++++++++-
1991/ant/ant.alt2.c | 28 ++
1991/ant/deobfuscated/Makefile | 34 --
1991/ant/deobfuscated/ant-c89.c | 371 ---------------
1991/ant/deobfuscated/ant.c | 364 --------------
1991/ant/index.html | 45 +-
1992/ant/.entry.json | 18 +-
1992/ant/Makefile | 28 +-
1992/ant/README.md | 4 +-
1992/ant/{deobfuscated/ant.c => ant.alt.c} | 0
1992/ant/deobfuscated/Makefile | 22 -
1992/ant/index.html | 13 +-
1992/ant/{deobfuscated => }/sleep.c | 0
1992/ant/try.alt.sh | 8 +-
1992/ant/try.sh | 2 +-
1993/ant/.entry.json | 28 +-
1993/ant/Makefile | 22 +-
1993/ant/README.md | 6 +-
.../ant/{deobfuscated/ant-c89.c => ant.alt.c} | 0
1993/ant/ant.alt.test.mk | 2 +-
1993/ant/ant.test.mk | 2 +-
1993/ant/deobfuscated/Makefile | 27 --
1993/ant/deobfuscated/ant.c | 449 ------------------
1993/ant/index.html | 16 +-
.../ant/{deobfuscated/test.mk => test.alt.mk} | 76 +--
1995/garry/.entry.json | 2 +-
1995/garry/index.html | 2 +-
2015/howe/.entry.json | 32 +-
2015/howe/.gitignore | 1 +
2015/howe/Makefile | 13 +-
2015/howe/README.md | 37 +-
2015/howe/deobfuscated/Makefile | 69 ---
2015/howe/{deobfuscated => }/err.h | 0
2015/howe/index.html | 26 +-
2015/howe/prog-test.sh | 1 +
2015/howe/prog.alt-test.sh | 137 ++++++
.../howe/{deobfuscated/prog.c => prog.alt2.c} | 0
2015/howe/try.alt.sh | 95 ++++
2015/howe/try.sh | 6 +-
2020/endoh2/.entry.json | 2 +-
2020/endoh2/index.html | 2 +-
bugs.html | 21 +-
bugs.md | 28 ++
thanks-for-help.html | 47 +-
thanks-for-help.md | 53 +--
tmp/manifest.csv | 36 +-
tmp/manifest.numbers | Bin 1344923 -> 1341735 bytes
tmp/path_list.found.txt | 22 +-
tmp/path_list.manifest.txt | 22 +-
tmp/path_list.required.txt | 22 +-
53 files changed, 993 insertions(+), 1740 deletions(-)
create mode 100644 1991/ant/ant.alt2.c
delete mode 100644 1991/ant/deobfuscated/Makefile
delete mode 100644 1991/ant/deobfuscated/ant-c89.c
delete mode 100644 1991/ant/deobfuscated/ant.c
rename 1992/ant/{deobfuscated/ant.c => ant.alt.c} (100%)
delete mode 100644 1992/ant/deobfuscated/Makefile
rename 1992/ant/{deobfuscated => }/sleep.c (100%)
rename 1993/ant/{deobfuscated/ant-c89.c => ant.alt.c} (100%)
delete mode 100644 1993/ant/deobfuscated/Makefile
delete mode 100644 1993/ant/deobfuscated/ant.c
rename 1993/ant/{deobfuscated/test.mk => test.alt.mk} (66%)
delete mode 100644 2015/howe/deobfuscated/Makefile
rename 2015/howe/{deobfuscated => }/err.h (100%)
create mode 100755 2015/howe/prog.alt-test.sh
rename 2015/howe/{deobfuscated/prog.c => prog.alt2.c} (100%)
create mode 100755 2015/howe/try.alt.sh
diff --git a/1991/ant/.entry.json b/1991/ant/.entry.json
index 0925e9583..ec1a3d9f8 100644
--- a/1991/ant/.entry.json
+++ b/1991/ant/.entry.json
@@ -26,7 +26,7 @@
"entry_text" : "entry Makefile"
},
{
- "file_path" : "ant.alt.c",
+ "file_path" : "ant.alt2.c",
"inventory_order" : 40,
"OK_to_edit" : true,
"display_as" : "c",
@@ -42,28 +42,12 @@
"entry_text" : "original source code"
},
{
- "file_path" : "deobfuscated/ant-c89.c",
+ "file_path" : "ant.alt.c",
"inventory_order" : 140,
"OK_to_edit" : true,
"display_as" : "c",
"display_via_github" : true,
- "entry_text" : "author provided deobfuscated code converted from K&R"
- },
- {
- "file_path" : "deobfuscated/ant.c",
- "inventory_order" : 140,
- "OK_to_edit" : true,
- "display_as" : "c",
- "display_via_github" : true,
- "entry_text" : "author provided deobfuscated code"
- },
- {
- "file_path" : "deobfuscated/Makefile",
- "inventory_order" : 150,
- "OK_to_edit" : true,
- "display_as" : "c",
- "display_via_github" : true,
- "entry_text" : "author provided Makefile for deobfuscated code"
+ "entry_text" : "author provided unobfuscated code"
},
{
"file_path" : "1991_ant.tar.bz2",
diff --git a/1991/ant/Makefile b/1991/ant/Makefile
index b8612e1e5..b124035ea 100644
--- a/1991/ant/Makefile
+++ b/1991/ant/Makefile
@@ -119,8 +119,8 @@ OBJ= ${PROG}.o
DATA= README.md
TARGET= ${PROG} hill mole
#
-ALT_OBJ= ${PROG}.alt.o deobfuscated/${PROG}.o
-ALT_TARGET= ${PROG}.alt deobfuscated/${PROG}
+ALT_OBJ= ${PROG}.alt.o ${PROG}.alt2.o
+ALT_TARGET= ${PROG}.alt ${PROG}.alt2
#################
@@ -154,25 +154,16 @@ alt: data ${ALT_TARGET}
${PROG}.alt: ${PROG}.alt.c hill
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
-# We keep the deobfuscated source code and Makefile in deobfuscated/, and use
-# that Makefile but then move the compiled programs to the entry's directory to
-# keep both directories clean and to allow the deobfuscated Makefile and code to
-# be used but not require the user to do:
-#
-# ./deobfuscated/ant
-# ./deobfuscated/ant-c89
-#
-# but rather simply:
-#
-# ./ant.alt2
-# ./ant.alt2-c89
-#
-# The alt2 is because this is the secondary alt.
-deobfuscated/${PROG}: deobfuscated/${PROG}.c deobfuscated/${PROG}-c89.c
- ${MAKE} -C deobfuscated ant
- ${MV} -vf deobfuscated/ant ant.alt2
- ${MAKE} -C deobfuscated ant-c89
- ${MV} -vf deobfuscated/ant-c89 ant.alt2-c89
+${PROG}.alt2: ${PROG}.alt2.c
+ ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
+
+hill.alt: README.md
+ ${RM} -f $@
+ ${CP} -f -v $? $@
+
+mole.alt: ${PROG}.c hill
+ ${RM} -f $@
+ ${CAT} ${PROG}.c hill.alt > $@
# data files
#
@@ -240,7 +231,7 @@ clean:
clobber: clean
${RM} -f ${TARGET} ${ALT_TARGET}
- ${RM} -rf *.dSYM ant.alt ant.alt2 ant.alt2-c89
+ ${RM} -rf *.dSYM ant.alt ant.alt2
@-if [ -e sandwich ]; then \
${RM} -f sandwich; \
echo 'ate sandwich'; \
diff --git a/1991/ant/README.md b/1991/ant/README.md
index ca830f3fb..3ef186cac 100644
--- a/1991/ant/README.md
+++ b/1991/ant/README.md
@@ -4,9 +4,9 @@
make all
```
-There is an alternate version that might feel a bit more familiar to vi(m)
-users. Additionally, the author provided deobfuscated versions including one for
-C89. See [Alternate code](#alternate-code) below.
+The author provided an unobfuscated version and there is an alternate version
+that might feel a bit more familiar to vi(m) users. See [Alternate
+code](#alternate-code) below.
## To use:
@@ -34,23 +34,18 @@ program exit without doing anything.
## Alternate code:
-The author provided us with deobfuscated versions including one for C89. The two
-C files in `deobfuscated`,
-[deobfuscated/ant.c](%%REPO_URL%%/1991/ant/deobfuscated/ant.c) and
-[deobfuscated/ant-c89.c](%%REPO_URL%%/1991/ant/deobfuscated/ant-c89.c) and the
-[deobfuscated/Makefile](%%REPO_URL%%/1991/ant/deobfuscated/Makefile) will allow
-you to look at them and compile them if you wish. These are exactly like the
-original in every way, including in use, except they are deobfuscated.
+The author provided us with an unobfuscated version,
+[ant.alt.c](%%REPO_URL%%/1991/ant/ant.alt.c).
-The other version, [ant.alt.c](%%REPO_URL%%/1991/ant/ant.alt.c) changes the
-commands slightly so that to go to the first column you should enter `0`, to go
-to the last column you should enter `$`, to quit you should enter `q`, to go
-back a word you should enter `b` and to go forwards a word you should enter `w`.
-Also, and perhaps most useful, rather than having to hit ctrl-L (form-feed,
-`\f`) to get back to command mode you can use the usual ESC (`\x1b`).
-
-These will make it slightly less unwieldy for those familiar with vi(m); the
-rest was unchanged.
+The other alternate version, [ant.alt2.c](%%REPO_URL%%/1991/ant/ant.alt2.c)
+changes the commands slightly so that to go to the first column you should enter
+`0`, to go to the last column you should enter `$`, to quit you should enter
+`q`, to go back a word you should enter `b` and to go forwards a word you should
+enter `w`. Also, and perhaps most useful, rather than having to hit ctrl-L
+(form-feed, `\f`) to get back to command mode you can use the usual ESC
+(`\x1b`); the author explains why this was not originally done in their remarks
+below. These slight modifications will make it slightly less unwieldy for those
+familiar with vi(m); the rest was unchanged.
### Alternate build:
@@ -62,10 +57,9 @@ rest was unchanged.
### Alternate use:
-For the deobfuscated versions, use `ant.alt2` and `ant.alt2-c89` as you would
-`ant` above; for the other one, `ant.alt`, use it as you would `ant` above but
-with the changes in the input keys described above. See the author's remarks for
-the remaining commands.
+For the unobfuscated version, use `ant.alt` as you would `ant` above; for the
+other one, use `ant.alt2` as you would `ant` above but with the changes in the
+input keys described above. See the author's remarks for the remaining commands.
## Judges' remarks:
diff --git a/1991/ant/ant.alt.c b/1991/ant/ant.alt.c
index 071bb8493..142c5f425 100644
--- a/1991/ant/ant.alt.c
+++ b/1991/ant/ant.alt.c
@@ -1,28 +1,371 @@
+/*
+ * Anthony's Editor
+ *
+ * Public Domain 1991, 2023 by Anthony Howe. All rights released.
+ */
+
#include There is an alternate version that might feel a bit more familiar to vi(m)
-users. Additionally, the author provided deobfuscated versions including one for
-C89. See Alternate code below. The author provided an unobfuscated version and there is an alternate version
+that might feel a bit more familiar to vi(m) users. See Alternate
+code below. NOTE: the file must already exist and not specifying any arg will make the
@@ -416,28 +416,23 @@ program exit without doing anything. The author provided us with deobfuscated versions including one for C89. The two
-C files in The other version, ant.alt.c changes the
-commands slightly so that to go to the first column you should enter These will make it slightly less unwieldy for those familiar with vi(m); the
-rest was unchanged. The author provided us with an unobfuscated version,
+ant.alt.c. The other alternate version, ant.alt2.c
+changes the commands slightly so that to go to the first column you should enter
+ For the deobfuscated versions, use For the unobfuscated version, use The author was kind enough to supply a list of references below,
in case you are still confused after read the source! :-)To build:
- make allTo use:
./ant some_file make mole
./ant moleAlternate code:
-deobfuscated,
-deobfuscated/ant.c and
-deobfuscated/ant-c89.c and the
-deobfuscated/Makefile will allow
-you to look at them and compile them if you wish. These are exactly like the
-original in every way, including in use, except they are deobfuscated.0, to go
-to the last column you should enter $, to quit you should enter q, to go
-back a word you should enter b and to go forwards a word you should enter w.
-Also, and perhaps most useful, rather than having to hit ctrl-L (form-feed,
-\f) to get back to command mode you can use the usual ESC (\x1b).0, to go to the last column you should enter $, to quit you should enter
+q, to go back a word you should enter b and to go forwards a word you should
+enter w. Also, and perhaps most useful, rather than having to hit ctrl-L
+(form-feed, \f) to get back to command mode you can use the usual ESC
+(\x1b); the author explains why this was not originally done in their remarks
+below. These slight modifications will make it slightly less unwieldy for those
+familiar with vi(m); the rest was unchanged.Alternate build:
make altAlternate use:
-ant.alt2 and ant.alt2-c89 as you would
-ant above; for the other one, ant.alt, use it as you would ant above but
-with the changes in the input keys described above. See the author’s remarks for
-the remaining commands.ant.alt as you would ant above; for the
+other one, use ant.alt2 as you would ant above but with the changes in the
+input keys described above. See the author’s remarks for the remaining commands.Judges’ remarks:
./try.sh
This version, ant.c in deobfuscated/, was provided by the -author in 2024, and is a deobfuscated version.
+This version, ant.alt.c, was provided by the +author in 2024, and is an unobfuscated version.
make alt
make all
-The author provided a deobfuscated version. See Alternate
+ The author provided an unobfuscated version. See Alternate
code below. The current status of this entry is:Bugs and (Mis)features:
./try.sh
The ant.c in deobfuscated/ is a -deobfuscated version provided by the author. You can look at this code if you +
The ant.alt.c is an +unobfuscated version provided by the author. You can look at this code if you want some clues in how it works.
If you wish to build this deobfuscated version, you can do so like:
@@ -472,14 +472,12 @@ more information. make
-There is an alternate version provided. See Alternate code -below.
+There are two alternate versions provided by the author. See Alternate +code and the author’s remarks below for more details.
+The current status of this entry is:
+ STATUS: known bug - please help us fix
+For more detailed information see 2015/howe in bugs.html.
./prog file1 file2
@@ -413,11 +417,16 @@ below.
./try.sh
Alternate code:
This alternate version does not use a 64-bit FNV hash. This was the original
-entry but was changed to be the alt version.
+entry but was changed to be the alt version. Later, in 2024, the author provided
+an unobfuscated version which is in
+prog.alt2.c.
Alternate build:
+To build these versions:
make alt
Alternate use:
-Use prog.alt as you would prog above.
+Use prog.alt and/or prog.alt2 as you would prog above.
+Alternate try:
+ ./try.alt.sh
Judges’ remarks:
This is the best use of the FNV that we have seen in the IOCCC so far!
The output, when used without -d, is compatible with POSIX diff(1) and
@@ -427,8 +436,10 @@ entries have been submitted.
Is this code a bug or a feature? :-) Or is this an attempt to corrupt the
programming of our youth? Should we heed Kyle’s mom words that she uttered
during a South Park P.T.A. Meeting?
+
“We must stop dirty (C) language from getting to our children’s ears!”
+
Or should we teach our youth to understand the intricacies of this code?
Ying Tong Iddle I Po! We suggest you read the source for yourself, which
might be easier than the academic papers it was inspired by.
@@ -521,12 +532,13 @@ Comm. of ACM, Vol. 18, June 1975, pages 341-343
prog.orig.c - original source code
avgtime.sh - support script
makeholes.c - C code to add random holes to a file
+prog.alt-test.sh - script to run test suite with alternate code
prog-test.sh - script to run test suite
+try.alt.sh - script to try alternate code
try.sh - script to try entry
cc.1 - cc man page
-deobfuscated/Makefile - deobfuscated Makefile
-deobfuscated/err.h - deobfuscated err.h header file
-deobfuscated/prog.c - deobfuscated source code
+err.h - unobfuscated err.h header file
+prog.alt2.c - unobfuscated source code
war-and-peace.txt - War and Peace translated to English
Secondary files
diff --git a/2015/howe/prog-test.sh b/2015/howe/prog-test.sh
index 55a8293cd..4715a6691 100755
--- a/2015/howe/prog-test.sh
+++ b/2015/howe/prog-test.sh
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
# Assume a POSIX compliant shell.
+make all || exit 1
PROG="./prog"
args=$(getopt 'f:w' "$@")
diff --git a/2015/howe/prog.alt-test.sh b/2015/howe/prog.alt-test.sh
new file mode 100755
index 000000000..384b3dbd1
--- /dev/null
+++ b/2015/howe/prog.alt-test.sh
@@ -0,0 +1,137 @@
+#!/usr/bin/env bash
+# Assume a POSIX compliant shell.
+
+make alt || exit 1
+PROG="./prog.alt"
+
+args=$(getopt 'f:w' "$@")
+status="$?"
+if [[ $status -ne 0 ]]; then
+ echo "usage: prog.alt-test.sh [-w][-f flags]"
+ exit 2
+fi
+set -- "$args"
+while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -w)
+ PROG="./prog-w64"
+ ;;
+ -f)
+ flags=$2; shift
+ ;;
+ --)
+ shift; break
+ ;;
+ *)
+ ;;
+ esac
+ shift
+done
+
+function distance
+{
+ typeset A="$1"; shift
+ typeset B="$1"; shift
+ typeset expect="$1"; shift
+
+ printf "%s" "$A" | sed -e 's/./&\
+/g' >"$A.tmp"
+ printf "%s" "$B" | sed -e 's/./&\
+/g' >"$B.tmp"
+
+ echo "<<< A='$A' B='$B' $*"
+ typeset dist
+ dist=$("$PROG" -d "$@" "$A.tmp" "$B.tmp" | tr -d '\r')
+
+ printf '>>> got=%d expect=%d ' "$dist" "$expect"
+
+ if [[ "$dist" -ne "$expect" ]]; then
+ echo FAIL
+ return 1
+ fi
+
+ echo -OK-
+ return 0
+}
+
+function dif
+{
+ typeset A="$1"; shift
+ typeset B="$1"; shift
+ typeset expect="$1"; shift
+
+ echo "==== $A $B"
+ "$PROG" "$A" "$B" | tee patch.tmp
+ typeset ex=$?
+
+ if [[ "$expect" -eq 0 ]]; then
+ printf "got=%d expect=%d " "$ex" "$expect"
+ if [[ $expect -ne $ex ]]; then
+ echo FAIL
+ return 1
+ fi
+ echo -OK-
+ return 0
+ fi
+
+ printf "forward patch "
+ cp "$A" copy.tmp
+ if ! patch -f -s copy.tmp patch.tmp ; then
+ echo FAIL
+ return 1
+ fi
+ echo -OK-
+
+ printf "forward compare "
+ if ! cmp "$B" copy.tmp ; then
+ echo FAIL
+ return 1
+ fi
+ echo -OK-
+
+ printf "reverse patch "
+ if ! patch -R -f -s copy.tmp patch.tmp ; then
+ echo FAIL
+ return 1
+ fi
+ echo -OK-
+
+ printf "reverse compare "
+ if ! cmp "$A" copy.tmp ; then
+ echo FAIL
+ return 1
+ fi
+ echo -OK-
+
+ return 0
+}
+
+distance "1" "1" 0 "$flags"
+distance "1" "A" 2 "$flags"
+distance "123" "ABCDE" 8 "$flags"
+distance "ABCDE" "123" 8 "$flags"
+distance "ABD" "ABCD" 1 "$flags"
+distance "ABCD" "ABD" 1 "$flags"
+distance "ABCD" "ACDBECFD" 4 "$flags"
+distance "ABCDEF" "ABXYEFCD" 6 "$flags"
+distance "ABCDEFGHIJK" "ABCEFGIJKDEFGHIJK" 6 "$flags"
+distance "ABCABBA" "CBABAC" 5 "$flags"
+distance "ACEBDABBABED" "ACBDEACBED" 6 "$flags"
+
+touch EMPTY.tmp
+dif 1.tmp 1.tmp 0
+dif EMPTY.tmp 123.tmp 1
+dif 123.tmp EMPTY.tmp 1
+dif ABCD.tmp ACDBECFD.tmp 1
+dif ACDBECFD.tmp ABCD.tmp 1
+dif 123.tmp ABCDE.tmp 1
+dif ABCDE.tmp 123.tmp 1
+
+# Note that prog and diff(1) have same edit distance,
+# but differ in the output.
+dif CBABAC.tmp ABCABBA.tmp 1
+dif ABCABBA.tmp CBABAC.tmp 1
+
+rm copy.tmp* 2>/dev/null
+
+echo DONE
diff --git a/2015/howe/deobfuscated/prog.c b/2015/howe/prog.alt2.c
similarity index 100%
rename from 2015/howe/deobfuscated/prog.c
rename to 2015/howe/prog.alt2.c
diff --git a/2015/howe/try.alt.sh b/2015/howe/try.alt.sh
new file mode 100755
index 000000000..49413d9b9
--- /dev/null
+++ b/2015/howe/try.alt.sh
@@ -0,0 +1,95 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC entry 2015/howe alt code
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+if [[ -z "$CC" ]]; then
+ CC="cc"
+fi
+
+make CC="$CC" alt >/dev/null || exit 1
+
+# clear screen after compilation so that only the entry is shown
+clear
+
+
+read -r -n 1 -p "Press any key to run: ./prog.alt prog.alt.c prog.c: "
+echo 1>&2
+./prog.alt prog.alt.c prog.c
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: make test (space = next page, q = quit): "
+echo 1>&2
+make test | less -rEXFK
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./prog.alt -d ABXYEFCD.tmp ACDBECFD.tmp: "
+echo 1>&2
+./prog.alt -d ABXYEFCD.tmp ACDBECFD.tmp
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./prog.alt ABXYEFCD.tmp ACDBECFD.tmp: "
+echo 1>&2
+./prog.alt ABXYEFCD.tmp ACDBECFD.tmp
+echo 1>&2
+
+rm -f curds.tmp whey.tmp
+read -r -n 1 -p "Press any key to run: cp -vf cc.1 curds.tmp: "
+echo 1>&2
+cp -vf cc.1 curds.tmp
+echo 1>&2
+read -r -n 1 -p "Press any key to run: cp -vf cc.1 whey.tmp: "
+echo 1>&2
+cp -vf cc.1 whey.tmp
+
+read -r -n 1 -p "Press any key to run: chmod -v 666 whey.tmp: "
+echo 1>&2
+chmod -v 666 whey.tmp
+echo 1>&2
+
+if [[ ! -x makeholes ]]; then
+ read -r -n 1 -p "Press any key to run: make makeholes: "
+ echo 1>&2
+ make makeholes
+ echo 1>&2
+fi
+
+read -r -n 1 -p "Press any key to run: ./makeholes -n 1000 whey.tmp: "
+echo 1>&2
+./makeholes -n 1000 whey.tmp
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./prog.alt curds.tmp whey.tmp (space = next page, q = quit): "
+echo 1>&2
+./prog.alt curds.tmp whey.tmp | less -rEXFK
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./avgtime.sh 100 ./prog.alt curds.tmp whey.tmp: "
+echo 1>&2
+./avgtime.sh 100 ./prog.alt curds.tmp whey.tmp
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: cp -vf war-and-peace.txt nuked.tmp: "
+echo 1>&2
+cp -vf war-and-peace.txt nuked.tmp
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./makeholes -c'~' -n 1000 nuked.tmp: "
+echo 1>&2
+./makeholes -c'~' -n 1000 nuked.tmp
+echo 1>&2
+
+echo "$ ./prog.alt war-and-peace.txt nuked.tmp" 1>&2
+read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
+echo 1>&2
+./prog.alt war-and-peace.txt nuked.tmp | less -rEXFK
+echo 1>&2
+
+echo "$ ./avgtime.sh 100 ./prog.alt war-and-peace.txt nuked.tmp" 1>&2
+read -r -n 1 -p "Press any key to continue: "
+echo 1>&2
+./avgtime.sh 100 ./prog.alt war-and-peace.txt nuked.tmp
+echo 1>&2
diff --git a/2015/howe/try.sh b/2015/howe/try.sh
index b45203d55..a01f5d957 100755
--- a/2015/howe/try.sh
+++ b/2015/howe/try.sh
@@ -82,12 +82,14 @@ echo 1>&2
./makeholes -c'~' -n 1000 nuked.tmp
echo 1>&2
-read -r -n 1 -p "Press any key to run: ./prog war-and-peace.txt nuked.tmp (space = next page, q = quit): "
+echo "$ ./prog war-and-peace.txt nuked.tmp" 1>&2
+read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
echo 1>&2
./prog war-and-peace.txt nuked.tmp | less -rEXFK
echo 1>&2
-read -r -n 1 -p "Press any key to run: ./avgtime.sh 100 ./prog war-and-peace.txt nuked.tmp: "
+echo "$ ./avgtime.sh 100 ./prog war-and-peace.txt nuked.tmp" 1>&2
+read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./avgtime.sh 100 ./prog war-and-peace.txt nuked.tmp
echo 1>&2
diff --git a/2020/endoh2/.entry.json b/2020/endoh2/.entry.json
index ce016aab9..fefeb6253 100644
--- a/2020/endoh2/.entry.json
+++ b/2020/endoh2/.entry.json
@@ -103,7 +103,7 @@
"OK_to_edit" : true,
"display_as" : "c",
"display_via_github" : true,
- "entry_text" : "deobfuscated source code"
+ "entry_text" : "unobfuscated source code"
},
{
"file_path" : "obfuscation/tmpl.txt",
diff --git a/2020/endoh2/index.html b/2020/endoh2/index.html
index 65169e6c4..3fa7dcab1 100644
--- a/2020/endoh2/index.html
+++ b/2020/endoh2/index.html
@@ -459,7 +459,7 @@ render for a larger terminal window? How about adding more glyphs?
obfuscation/gen.rb - ruby code to compose items and prog.c in artistic way
obfuscation/glyphs.txt - glyphs data for deobfuscation/gen.rb
obfuscation/index.html - deobfuscation information web page
-obfuscation/prog.c - deobfuscated source code
+obfuscation/prog.c - unobfuscated source code
obfuscation/tmpl.txt - template for deobfuscation/gen.rb output
Secondary files
diff --git a/bugs.html b/bugs.html
index 14d361e76..721274cc8 100644
--- a/bugs.html
+++ b/bugs.html
@@ -2949,6 +2949,25 @@ takes care to warn about this issue after printing an incorrect big-endian
result. Error messages become garbled, though.
–
+
+2015/howe
+
+STATUS: known bug - please help us fix
+The test scripts do not seem to work properly with bash but this would be ideal
+as not all systems have a compatible shell (they assume a POSIX compliant
+shell). One, with bash, might see:
+ ./prog-test.sh
+ <<< A='1' B='1'
+ prog: : No such file or directory
+ >>> got=0 expect=0 -OK-
+ <<< A='1' B='A'
+ prog: : No such file or directory
+ >>> got=0 expect=2 FAIL
+It would appear that the variable passed to the command in the function,
+distance, is empty.
+The same problem exists in the
+prog.alt-test.sh, particularly
+because it is the same thing as the other, just updated to use prog.alt.
2015/mills2
@@ -3028,7 +3047,7 @@ fixing the syntax error in the generated ioccc.json file.
2018/mills
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 2018/mills/prog.c
Information: 2018/mills/index.html
After exiting the program (with ctrl-e) if you try running it again you will
diff --git a/bugs.md b/bugs.md
index 204e3205a..5c82b5242 100644
--- a/bugs.md
+++ b/bugs.md
@@ -3690,6 +3690,7 @@ they will properly get:
+
## 2015/hou
@@ -3722,6 +3723,33 @@ result. Error messages become garbled, though.
--
+
+## 2015/howe
+
+
+### STATUS: known bug - please help us fix
+
+The test scripts do not seem to work properly with bash but this would be ideal
+as not all systems have a compatible shell (they assume a POSIX compliant
+shell). One, with bash, might see:
+
+```
+ ./prog-test.sh
+ <<< A='1' B='1'
+ prog: : No such file or directory
+ >>> got=0 expect=0 -OK-
+ <<< A='1' B='A'
+ prog: : No such file or directory
+ >>> got=0 expect=2 FAIL
+```
+
+It would appear that the variable passed to the command in the function,
+`distance`, is empty.
+
+The same problem exists in the
+[prog.alt-test.sh](%%REPO_URL%%/2015/howe/prog.alt-test.sh), particularly
+because it is the same thing as the other, just updated to use `prog.alt`.
+
## 2015/mills2
diff --git a/thanks-for-help.html b/thanks-for-help.html
index c60ca3dec..f502df352 100644
--- a/thanks-for-help.html
+++ b/thanks-for-help.html
@@ -1409,30 +1409,24 @@ been fixed so that if one passes no arg it will still likely crash.
Winning entry source code: ant.c
The author, Anthony C Howe, provided a
-deobfuscated version which was put in by Cody with thanks to Anthony!
-The deobfuscated directory has the code and Makefile. The entry’s Makefile was
-updated to compile the alt code, if make alt is used, but in a way that keeps
-both directories clean (the deobfuscated version will not be in the entry’s
-directory and vice versa) but also allowing one to just do ./ant.alt2 (see
-below for why alt2). There are two versions here,
-deobfuscated/ant.c and
-deobfuscated/ant-c89.c along
-with the Makefile. The latter C file was converted from K&R by Anthony (the
-other one did not compile without a few fixes made by Cody).
-Cody also added alternate code that
+unobfuscated version which was put in by Cody with thanks to Anthony!
+This was put in as ant.alt.c. There were two
+versions, one which was converted from K&R and worked without modification and
+another which Cody had to slightly modify to get it to work in modern systems.
+But since only one was needed the one that worked already was used.
+Cody also added another version that
will be a bit easier to use for those familiar with vim in the following ways
(we don’t want vi users to also not be able to use it or exit it, now do we ?
:-) ):
- Use
0 to go to first column.
- Use
$ to go to last column.
-- Hit ESC to go back to command mode (instead of form-feed, ctrl-L).
+- Hit ESC to go back to command mode (instead of form-feed, ctrl-L like the original).
- Use
w to go forwards one word.
- Use
b to go backwards one word.
- Use
q to exit.
The other keys were left unchanged.
-(As this was done first it was left as alt and not changed to alt2.)
Winning entry: 1991/brnstnd
Winning entry source code: brnstnd.c
@@ -1704,12 +1698,9 @@ rule where a line was not ended with a \ but should have been.
necessary to include time.h so Cody did this as well as this exists in other
systems too.
Cody also added the try.sh script.
-The author, Anthony C Howe, provided a
-deobfuscated version that Cody added in, with thanks to Anthony! The source code
-and the Makefile as well as sleep.c are in the deobfuscated/ directory.
-The entry’s Makefile was updated in a way that keeps the deobfuscated code
-separate from the entry’s code but which allows one to use the deobfuscated
-Makefile when compiling the alt code (via make alt). For this version,
+
The author, Anthony C Howe, provided an
+unobfuscated version that Cody added in, with
+thanks to Anthony! For this version,
try.alt.sh was added and an alternate test
Makefile (along the lines of the author’s provided test Makefile) was added,
updated to use ant.alt.
@@ -1878,13 +1869,12 @@ encourage you to try the original without two args :-)
Cody added the try.sh script and a data file,
ants.txt, full of ants for the script.
-The author, Anthony C Howe, provided a
-deobfuscated version that Cody added in, with thanks to Anthony! The source code
-(which might have had to be fixed to compile with modern compilers whereas the
--c89 version was converted from K&R and worked without any fixes) and its
-Makefile was put in the deobfuscated subdirectory to keep them separate. The
-entry’s Makefile was updated so that it uses the deobfuscated version’s Makefile
-but allowing one to run ./ant.alt.
+The author, Anthony C Howe, provided an
+unobfuscated version that Cody added in, with thanks to Anthony! The source code
+This was put in as ant.alt.c. There were two
+versions, one which was converted from K&R and worked without modification and
+another which Cody had to slightly modify to get it to work in modern systems.
+But since only one was needed the one that worked already was used.
Winning entry: 1993/cmills
Winning entry source code: cmills.c
@@ -4207,6 +4197,11 @@ and Peace text file, fixed the cc.1 man page as not all systems have it (in fact it’s
gcc(1) from Rocky Linux).
+The author, Anthony C Howe, provided an
+unobfuscated version that Cody added in, with thanks to Anthony! As the author
+had already provided an alternate version (which was actually the original
+entry), this was put in prog.alt2.c. This
+addition prompted the try.alt.sh script.
Winning entry: 2015/mills1
Winning entry source code: prog.c
diff --git a/thanks-for-help.md b/thanks-for-help.md
index e07630bb0..54c1cdb47 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -1461,33 +1461,26 @@ Cody also added the [try.sh](%%REPO_URL%%/1990/westley/try.sh) script.
The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided a
-deobfuscated version which was put in by [Cody](#cody) with thanks to Anthony!
-The `deobfuscated` directory has the code and Makefile. The entry's Makefile was
-updated to compile the alt code, if `make alt` is used, but in a way that keeps
-both directories clean (the deobfuscated version will not be in the entry's
-directory and vice versa) but also allowing one to just do `./ant.alt2` (see
-below for why `alt2`). There are two versions here,
-[deobfuscated/ant.c](%%REPO_URL%%/1991/ant/deobfuscated/ant.c) and
-[deobfuscated/ant-c89.c](%%REPO_URL%%/1991/ant/deobfuscated/ant-c89.c) along
-with the `Makefile`. The latter C file was converted from `K&R` by Anthony (the
-other one did not compile without a few fixes made by Cody).
+unobfuscated version which was put in by [Cody](#cody) with thanks to Anthony!
+This was put in as [ant.alt.c](%%REPO_URL%%/1991/ant/ant.alt.c). There were two
+versions, one which was converted from `K&R` and worked without modification and
+another which Cody had to slightly modify to get it to work in modern systems.
+But since only one was needed the one that worked already was used.
-[Cody](#cody) also added [alternate code](%%REPO_URL%%/1991/ant/ant.alt.c) that
+[Cody](#cody) also added [another version](%%REPO_URL%%/1991/ant/ant.alt2.c) that
will be a bit easier to use for those familiar with vim in the following ways
(we don't want vi users to also not be able to use it or exit it, now do we ?
:-) ):
- Use `0` to go to first column.
- Use `$` to go to last column.
-- Hit ESC to go back to command mode (instead of form-feed, ctrl-L).
+- Hit ESC to go back to command mode (instead of form-feed, ctrl-L like the original).
- Use `w` to go forwards one word.
- Use `b` to go backwards one word.
- Use `q` to exit.
The other keys were left unchanged.
-(As this was done first it was left as `alt` and not changed to `alt2`.)
-
## Winning entry: [1991/brnstnd](1991/brnstnd/index.html)
@@ -1888,12 +1881,9 @@ systems too.
Cody also added the [try.sh](%%REPO_URL%%/1992/ant/try.sh) script.
-The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided a
-deobfuscated version that Cody added in, with thanks to Anthony! The source code
-and the `Makefile` as well as `sleep.c` are in the `deobfuscated/` directory.
-The entry's Makefile was updated in a way that keeps the deobfuscated code
-separate from the entry's code but which allows one to use the deobfuscated
-Makefile when compiling the alt code (via `make alt`). For this version,
+The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided an
+[unobfuscated version](%%REPO_URL%%/1992/ant/ant.alt.c) that Cody added in, with
+thanks to Anthony! For this version,
[try.alt.sh](%%REPO_URL%%/1992/ant/try.alt.sh) was added and an alternate test
Makefile (along the lines of the author's provided test Makefile) was added,
updated to use `ant.alt`.
@@ -2122,13 +2112,12 @@ encourage you to try the original without two args :-)
[Cody](#cody) added the [try.sh](%%REPO_URL%%/1993/ant/try.sh) script and a data file,
[ants.txt](1993/ant/ants.txt), full of ants for the script.
-The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided a
-deobfuscated version that Cody added in, with thanks to Anthony! The source code
-(which might have had to be fixed to compile with modern compilers whereas the
-`-c89` version was converted from `K&R` and worked without any fixes) and its
-Makefile was put in the `deobfuscated` subdirectory to keep them separate. The
-entry's Makefile was updated so that it uses the deobfuscated version's Makefile
-but allowing one to run `./ant.alt`.
+The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided an
+unobfuscated version that Cody added in, with thanks to Anthony! The source code
+This was put in as [ant.alt.c](%%REPO_URL%%/1991/ant/ant.alt.c). There were two
+versions, one which was converted from `K&R` and worked without modification and
+another which Cody had to slightly modify to get it to work in modern systems.
+But since only one was needed the one that worked already was used.
@@ -5397,6 +5386,16 @@ resulted in standard input errors in piping to `bc(1)`) and added the
[cc.1](%%REPO_URL%%/2015/howe/cc.1) man page as not all systems have it (in fact it's
`gcc(1)` from Rocky Linux).
+The author, [Anthony C Howe](authors.html#Anthony_C_Howe), provided an
+unobfuscated version that Cody added in, with thanks to Anthony! As the author
+had already provided an alternate version (which was actually the original
+entry), this was put in [prog.alt2.c](%%REPO_URL%%/2015/howe/prog.alt2.c). This
+addition prompted the [try.alt.sh](%%REPO_URL%%/2015/howe/try.alt.sh) script.
+
+The fact there are alternate versions necessitated the
+[prog.alt-test.sh](%%REPO_URL%%/2015/howe/prog.alt-test.sh) which Cody added as
+well.
+
## Winning entry: [2015/mills1](2015/mills1/index.html)
diff --git a/tmp/manifest.csv b/tmp/manifest.csv
index 1897a1976..9068c275c 100644
--- a/tmp/manifest.csv
+++ b/tmp/manifest.csv
@@ -570,11 +570,9 @@
1990,westley,index.html,4294967295,false,html,false,this web page
1991,ant,ant.c,20,true,c,true,entry source code
1991,ant,Makefile,30,true,makefile,true,entry Makefile
-1991,ant,ant.alt.c,40,true,c,true,alternate source code
+1991,ant,ant.alt2.c,40,true,c,true,alternate source code
1991,ant,ant.orig.c,50,false,c,true,original source code
-1991,ant,deobfuscated/ant.c,140,true,c,true,author provided deobfuscated code
-1991,ant,deobfuscated/ant-c89.c,140,true,c,true,author provided deobfuscated code converted from K&R
-1991,ant,deobfuscated/Makefile,150,true,c,true,author provided Makefile for deobfuscated code
+1991,ant,ant.alt.c,140,true,c,true,author provided unobfuscated code
1991,ant,1991_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1991,ant,README.md,4000000000,true,markdown,true,markdown source for this web page
1991,ant,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
@@ -712,13 +710,12 @@
1992,ant,Makefile,30,true,makefile,true,entry Makefile
1992,ant,ant.orig.c,50,false,c,true,original source code
1992,ant,try.sh,100,true,shellscript,true,script to try entry
-1992,ant,deobfuscated/ant.c,140,true,c,true,author provided deobfuscated code
-1992,ant,deobfuscated/sleep.c,140,true,c,true,author provided code for those who need a nap
+1992,ant,ant.alt.c,140,true,c,true,author provided unobfuscated code
+1992,ant,sleep.c,140,true,c,true,author provided code for those who need a nap
1992,ant,ant.README.txt,150,true,text,true,am man page
1992,ant,ant.test.mk,150,true,makefile,true,Makefile to demonstrate entry
-1992,ant,deobfuscated/Makefile,150,true,makefile,true,author provided Makefile for deobfuscated code
-1992,ant,try.alt.sh,150,true,shellscript,true,script to try deobfuscated code
-1992,ant,ant.test.alt.mk,160,true,makefile,true,Makefile to demonstrate deobfuscated code
+1992,ant,try.alt.sh,150,true,shellscript,true,script to try unobfuscated code
+1992,ant,ant.test.alt.mk,160,true,makefile,true,Makefile to demonstrate unobfuscated code
1992,ant,1992_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1992,ant,README.md,4000000000,true,markdown,true,markdown source for this web page
1992,ant,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
@@ -848,14 +845,12 @@
1993,ant,ant.orig.c,50,false,c,true,original source code
1993,ant,ant.txt,100,true,text,false,ag man page
1993,ant,try.sh,100,true,shellscript,true,script to try entry
-1993,ant,deobfuscated/ant.c,120,true,c,true,author provided deobfuscated code
-1993,ant,deobfuscated/ant-c89.c,120,true,c,true,author provided deobfuscated code converted from K&R
-1993,ant,try.alt.sh,130,true,shellscript,true,script to try deobfuscated code
-1993,ant,deobfuscated/Makefile,140,true,makefile,true,author provided Makefile for deobfuscated code
-1993,ant,deobfuscated/test.mk,140,true,makefile,true,author provided test suite Makefile for deobfuscated code
+1993,ant,ant.alt.c,120,true,c,true,author provided unobfuscated code
+1993,ant,try.alt.sh,130,true,shellscript,true,script to try unobfuscated code
+1993,ant,test.alt.mk,140,true,makefile,true,author provided test suite Makefile for unobfuscated code
1993,ant,ants.txt,150,false,text,false,lyrics of the Ants Go Marching song
1993,ant,ant.test.mk,150,true,makefile,true,test suite Makefile
-1993,ant,ant.alt.test.mk,160,true,makefile,true,test suite Makefile for deobfuscated code
+1993,ant,ant.alt.test.mk,160,true,makefile,true,test suite Makefile for unobfuscated code
1993,ant,1993_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1993,ant,README.md,4000000000,true,markdown,true,markdown source for this web page
1993,ant,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
@@ -1158,7 +1153,7 @@
1995,garry,garry.data,100,true,text,true,modified README.md for input to program
1995,garry,try.alt.sh,100,true,shellscript,true,script to try alternate code
1995,garry,try.sh,100,true,shellscript,true,script to try entry
-1995,garry,garry.fmt.c,150,true,c,true,deobfuscated and formatted source code
+1995,garry,garry.fmt.c,150,true,c,true,unobfuscated and formatted source code
1995,garry,1995_garry.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1995,garry,README.md,4000000000,true,markdown,true,markdown source for this web page
1995,garry,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
@@ -3527,12 +3522,13 @@
2015,howe,prog.orig.c,50,false,c,true,original source code
2015,howe,avgtime.sh,100,true,shellscript,true,support script
2015,howe,makeholes.c,100,true,c,true,C code to add random holes to a file
+2015,howe,prog.alt-test.sh,100,true,shellscript,true,script to run test suite with alternate code
2015,howe,prog-test.sh,100,true,shellscript,true,script to run test suite
+2015,howe,try.alt.sh,100,true,shellscript,true,script to try alternate code
2015,howe,try.sh,100,true,shellscript,true,script to try entry
2015,howe,cc.1,159,true,man,true,cc man page
-2015,howe,deobfuscated/Makefile,200,true,makefile,true,deobfuscated Makefile
-2015,howe,deobfuscated/err.h,210,true,c,true,deobfuscated err.h header file
-2015,howe,deobfuscated/prog.c,210,true,c,true,deobfuscated source code
+2015,howe,err.h,210,true,c,true,unobfuscated err.h header file
+2015,howe,prog.alt2.c,210,true,c,true,unobfuscated source code
2015,howe,war-and-peace.txt,250,true,text,false,War and Peace translated to English
2015,howe,2015_howe.tar.bz2,1415926535,false,tbz2,false,download entry tarball
2015,howe,README.md,4000000000,true,markdown,true,markdown source for this web page
@@ -4121,7 +4117,7 @@
2020,endoh2,obfuscation/gen.rb,200,true,ruby,true,ruby code to compose items and prog.c in artistic way
2020,endoh2,obfuscation/glyphs.txt,200,true,text,false,glyphs data for deobfuscation/gen.rb
2020,endoh2,obfuscation/index.html,200,true,html,false,deobfuscation information web page
-2020,endoh2,obfuscation/prog.c,200,true,c,true,deobfuscated source code
+2020,endoh2,obfuscation/prog.c,200,true,c,true,unobfuscated source code
2020,endoh2,obfuscation/tmpl.txt,200,true,text,false,template for deobfuscation/gen.rb output
2020,endoh2,2020_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball
2020,endoh2,README.md,4000000000,true,markdown,true,markdown source for this web page
diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers
index 9708d4d7206ff8ae1b3714cc3dcc7cac7659ea20..67de735838a924cb8ed708dae13930850fdbfd57 100644
GIT binary patch
delta 181198
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