Files
Cody Boone Ferguson 205fa25ced Change references of many terms to new names
This is a HUGE commit and this task is not done. There are still some
changes that might need to be discussed and since so much is done here I
think it's better to let this go through and then make sure everything
is okay. When the remaining references are discussed they can also be
changed.

I did NOT include changes in the tmp/OLD_manifest directory.

Some of the changes in this commit (it might be exhaustive but it might
not be - not sure):

- In the Makefiles the WINNERS was renamed AUTHORS.
- References to winners.html were changed to authors.html.
- The FAQ named anchor 'fix_a_winner' was renamed 'fix_an_entry'.
- The JSON fields (or whatever they're called) 'winner_id' and
'winner_JSON_format_version' were changed so that 'winner' is 'entry'.
- In scripts for entries 'IOCCC winner' was changed to 'IOCCC entry'.
- 'winners_text' is now 'entries_text'. It might be better to be
'entry_text' as it's per entry but this was not noticed at first. Since
this is easy to fix I am holding off on this for the meantime.
- The script tmp/update-manifest.sh now has the commit log messages
changed to the correct terms as well.

The index.html files were updated as well with any of the above
changes.

There are some references that should NOT be updated. Two examples
caught (and maybe more have slipped through that will have to be changed
back): in 1984/anonymous/README.md the author wrote back to Landon after
being told about the famous tattoo and they used the words:

    .. my entry will be the first IOCCC winner ..

but since this comes from the author it should remain so.

The other one is that winners.html should still refer to winners.html as
it informs people that it's been moved to authors.html (it does redirect
too but even so if it was changed it would defeat the purpose of the
message).

With paths like authors.html I tried to copy paste so that hopefully
there are no typos. It is possible that I did not end up doing this with
all but these can be fixed when discovered.
2024-02-13 07:31:36 -08:00

115 lines
3.2 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# try.sh - show IOCCC entry 1996/gandalf
#
# BTW: it is absolutely perilous to 'try' the patience of Gandalf: go ahead,
# 'try it'! :-)
#
# 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" all >/dev/null || exit 1
# clear screen after compilation so that only the entry is shown
clear
if [[ "$#" -gt 0 ]]; then
if [[ "${1@L}" = "gandalf" ]]; then
echo "It is perilous to try the patience of Gandalf!" 1>&2
read -r -p "Are you sure you wish to do this (Y/N)? "
echo 1>&2
if [[ "$REPLY" != "y" && "$REPLY" != "Y" ]]; then
echo "Wise move, will not try Gandalf's patience!" 1>&2
exit 0
else
echo "Fool of a ${USER@u}!" 1>&2
echo "Oh well, never mind that, moving on ..." 1>&2
echo 1>&2
fi
fi
fi
# remove temporary files to show later
rm -f hatcat.txt cathat.txt hatcat2.txt cathat2.txt hatcat3.txt cathat3.txt
trap 'rm -f hatcat.txt cathat.txt hatcat2.txt cathat2.txt hatcat3.txt cathat3.txt; exit' 0 1 2 3 15
show_diff()
{
if [[ "$#" -ne 3 ]]; then
echo "$0: show_diff expects two args, got: $#" 1>&2
exit 1
fi
echo "$ diff $1 $2 ($3): " 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
diff -C 1 "$1" "$2" && echo "$1 and $2 are identical"
echo 1>&2
}
read -r -n 1 -p "Press any key to run: diff -s hatcat cathat: "
echo 1>&2
diff -s hatcat cathat
echo 1>&2
echo "Next notice how running both cathat and hatcat in different ways" 1>&2
echo "shows different output." 1>&2
read -r -n 1 -p "Press any key to run: PATH=.:\$PATH: "
echo 1>&2
PATH=.:$PATH
read -r -n 1 -p "Press any key to run: hatcat | tee hatcat.txt (no path): "
echo 1>&2
hatcat | tee hatcat.txt
echo 1>&2
read -r -n 1 -p "Press any key to run: cathat | tee cathat.txt (no path): "
echo 1>&2
cathat | tee cathat.txt
echo 1>&2
show_diff hatcat.txt cathat.txt "diff between 'hatcat' and './cathat'"
read -r -n 1 -p "Press any key to run: ./hatcat | tee hatcat2.txt: "
echo 1>&2
./hatcat | tee hatcat2.txt
read -r -n 1 -p "Press any key to run: ./cathat | tee cathat2.txt: "
echo 1>&2
./cathat | tee cathat2.txt
show_diff hatcat.txt hatcat2.txt "diff between 'hatcat' and './hatcat'"
read -r -n 1 -p "Press any key to run: \$(pwd)/cathat | tee cathat3.txt: "
echo 1>&2
"$(pwd)"/cathat | tee cathat3.txt
read -r -n 1 -p "Press any key to run: \$(pwd)/hatcat | tee hatcat3.txt: "
echo 1>&2
"$(pwd)"/hatcat | tee hatcat3.txt
show_diff hatcat2.txt cathat2.txt "diff between './hatcat' and './cathat'"
show_diff hatcat3.txt cathat3.txt "diff between '\$(pwd)/hatcat' and '\$(pwd)/cathat'"
show_diff hatcat3.txt hatcat.txt "diff between '\$(pwd)/hatcat' and 'hatcat'"
show_diff hatcat3.txt hatcat2.txt "diff between '\$(pwd)/hatcat' and './hatcat'"
show_diff cathat3.txt cathat.txt "diff between \$(pwd)/cathat' and 'cathat'"
show_diff cathat3.txt cathat2.txt "diff between '\$(pwd)/cathat' and './cathat'"
# remove temporary files
rm -f hatcat.txt cathat.txt hatcat2.txt cathat2.txt hatcat3.txt cathat3.txt
echo 1>&2
echo "Now answer: why did some of the same programs execute differently?" 1>&2
rm -f hatcat.txt cathat.txt hatcat2.txt cathat2.txt hatcat3.txt cathat3.txt