Merge pull request #1932 from xexyl/95-garry-gitignore
Update 1995/garry.gitignore - add garry.fmt
This commit is contained in:
12 files changed
+190
-56
No files matched your search
@@ -3,6 +3,7 @@
|
||||
*.dSYM
|
||||
garry
|
||||
garry.alt
|
||||
garry.fmt
|
||||
garry.orig
|
||||
indent
|
||||
indent.c
|
||||
|
||||
@@ -15,9 +15,7 @@ make all
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
./schnitzi 24
|
||||
./schnitzi 18
|
||||
./schnitzi 30
|
||||
./try.sh
|
||||
```
|
||||
|
||||
WARNING: the author warns to not use too high a number! If you wish to ignore
|
||||
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# try.sh - demonstrate IOCCC winner 1995/schnitzi
|
||||
#
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./schnitzi 24 (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./schnitzi 24 | less -rEXF
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./schnitzi 18 (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./schnitzi 18 | less -rEXF
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./schnitzi 30 (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./schnitzi 30 | less -rEXF
|
||||
echo 1>&2
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ For more detailed information see [1995 vanschnitz in bugs.md](/bugs.md#1995-van
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
make clobber all LEVEL=6
|
||||
./vanschnitz
|
||||
./try.sh
|
||||
```
|
||||
|
||||
|
||||
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# try.sh - demonstrate IOCCC winner 1995/vanschnitz
|
||||
#
|
||||
|
||||
# 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
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./vanschnitz (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./vanschnitz | less -rEXF
|
||||
echo 1>&2
|
||||
|
||||
for i in $(seq 1 6); do
|
||||
read -r -n 1 -p "Press any key to set level at $i (make clobber all LEVEL=$i): "
|
||||
echo 1>&2
|
||||
make clobber all LEVEL="$i"
|
||||
read -r -n 1 -p "Press any key to run: ./vanschnitz (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./vanschnitz | less -rEXF
|
||||
done
|
||||
@@ -41,7 +41,7 @@ The above should print a `!` followed by a newline.
|
||||
## Judges' remarks:
|
||||
|
||||
This entry can feed on itself. If you C pre-process the source,
|
||||
you compile the interpreter:
|
||||
you can compile the interpreter:
|
||||
|
||||
```sh
|
||||
make august.oc
|
||||
|
||||
+49
-4
@@ -15,26 +15,71 @@ make CC="$CC" all >/dev/null || exit 1
|
||||
# clear screen after compilation so that only the entry is shown
|
||||
clear
|
||||
|
||||
set -x
|
||||
read -r -n 1 -p "Press any key to run: cat august.c test.oc | ./august > test.oo: "
|
||||
echo 1>&2
|
||||
cat august.c test.oc | ./august > test.oo
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./august < test.oo: "
|
||||
echo 1>&2
|
||||
./august < test.oo
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.c fac.oc | ./august > fac.oo: "
|
||||
echo 1>&2
|
||||
cat august.c fac.oc | ./august > fac.oo
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./august < fac.oo: "
|
||||
echo 1>&2
|
||||
./august < fac.oo
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.c fac.oc | ./august | ./august: "
|
||||
echo 1>&2
|
||||
cat august.c fac.oc | ./august | ./august
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.c parse.oc | ./august > parse.oo: "
|
||||
echo 1>&2
|
||||
cat august.c parse.oc | ./august > parse.oo
|
||||
cat parse.oo fac.oc | ./august | ./august
|
||||
echo 1>&2
|
||||
|
||||
rm august.oc
|
||||
make august.oc
|
||||
read -r -n 1 -p "Press any key to run: cat parse.oo fac.oc | ./august | ./august: "
|
||||
echo 1>&2
|
||||
cat parse.oo fac.oc | ./august | ./august
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: rm august.oc; make august.oc: "
|
||||
echo 1>&2
|
||||
rm august.oc; make august.oc
|
||||
echo 1>&2
|
||||
|
||||
# this next step is vital for some compilers! Not having it will make the
|
||||
# compiler create code that enters an infinite loop. This is known to happen in
|
||||
# macOS as one example.
|
||||
read -r -n 1 -p "Press any key to run: sed -i'' '/^#/d' august.oc: "
|
||||
echo 1>&2
|
||||
sed -i'' '/^#/d' august.oc
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.c august.oc | ./august > august.oo: "
|
||||
echo 1>&2
|
||||
cat august.c august.oc | ./august > august.oo
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.oo test.oo | ./august: "
|
||||
echo 1>&2
|
||||
cat august.oo test.oo | ./august
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.oo august.oo fac.oo | ./august: "
|
||||
echo 1>&2
|
||||
cat august.oo august.oo fac.oo | ./august
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: cat august.oo august.oo august.oo fac.oo | ./august: "
|
||||
echo 1>&2
|
||||
echo "This step may take more time: " 1>&2
|
||||
cat august.oo august.oo august.oo fac.oo | ./august
|
||||
echo 1>&2
|
||||
@@ -15,7 +15,7 @@ make all
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
./dalbec 3 | head -n 29
|
||||
./try.sh
|
||||
```
|
||||
|
||||
Why does the output end with 121?
|
||||
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# try.sh - show IOCCC winner 1996/dalbec
|
||||
#
|
||||
|
||||
# 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
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./dalbec 5 | head -n 29 (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./dalbec 5 | head -n 29 | less -rEXF
|
||||
echo 1>&2
|
||||
|
||||
read -r -n 1 -p "Press any key to run: ./dalbec 3 | head -n 29 (space = next page, q = quit): "
|
||||
echo 1>&2
|
||||
./dalbec 3 | head -n 29 | less -rEXF
|
||||
echo 1>&2
|
||||
+25
-40
@@ -23,98 +23,83 @@ 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
|
||||
|
||||
delete_tmp_files()
|
||||
{
|
||||
rm -f hatcat.txt cathat.txt hatcat2.txt cathat2.txt hatcat3.txt cathat3.txt
|
||||
return 0
|
||||
}
|
||||
press_any_key()
|
||||
{
|
||||
echo 1>&2
|
||||
read -r -n 1 -p "Press any key to continue (q = quit): " 1>&2
|
||||
test "$REPLY" = "q" && delete_tmp_files && echo 1>&2 && exit
|
||||
}
|
||||
|
||||
show_diff()
|
||||
{
|
||||
if [[ "$#" -ne 2 ]]; then
|
||||
echo "$0: show_diff expects two args, got: $#" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
echo "$ diff $1 $2" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: diff $1 $2: "
|
||||
echo 1>&2
|
||||
diff "$1" "$2" && echo "$1 and $2 are identical"
|
||||
echo 1>&2
|
||||
}
|
||||
|
||||
echo "Notice how the programs are the same:" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: diff -s hatcat cathat: "
|
||||
echo 1>&2
|
||||
diff -s hatcat cathat
|
||||
press_any_key
|
||||
echo 1>&2
|
||||
|
||||
echo "Now notice how running both cathat and hatcat in different ways" 1>&2
|
||||
echo "Next notice how running both cathat and hatcat in different ways" 1>&2
|
||||
echo "shows different output." 1>&2
|
||||
press_any_key
|
||||
|
||||
echo "Running hatcat without a path:" 1>&2
|
||||
echo "$ PATH=.:\$PATH" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: PATH=.:\$PATH: "
|
||||
echo 1>&2
|
||||
PATH=.:$PATH
|
||||
echo "$ hatcat | tee hatcat.txt" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: hatcat | tee hatcat.txt (no path): "
|
||||
echo 1>&2
|
||||
hatcat | tee hatcat.txt
|
||||
press_any_key
|
||||
echo 1>&2
|
||||
|
||||
echo "Running cathat without a path:" 1>&2
|
||||
echo "$ cathat | tee cathat.txt" 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
|
||||
press_any_key
|
||||
echo 1>&2
|
||||
|
||||
echo "Showing diff between the above two commands, 'hatcat' and './cathat':" 1>&2
|
||||
show_diff hatcat.txt cathat.txt
|
||||
press_any_key
|
||||
|
||||
echo "Now watch ./hatcat:" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: ./hatcat | tee hatcat2.txt: "
|
||||
echo 1>&2
|
||||
./hatcat | tee hatcat2.txt
|
||||
press_any_key
|
||||
|
||||
echo "Now watch ./cathat:" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: ./cathat | tee cathat2.txt: "
|
||||
echo 1>&2
|
||||
./cathat | tee cathat2.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running 'hatcat' and './hatcat':" 1>&2
|
||||
show_diff hatcat.txt hatcat2.txt
|
||||
press_any_key
|
||||
|
||||
echo "Now watch \$(pwd)/cathat" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: \$(pwd)/cathat | tee cathat3.txt: "
|
||||
echo 1>&2
|
||||
"$(pwd)"/cathat | tee cathat3.txt
|
||||
press_any_key
|
||||
|
||||
echo "Finally, watch \$(pwd)/hatcat" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: \$(pwd)/hatcat | tee hatcat3.txt: "
|
||||
echo 1>&2
|
||||
"$(pwd)"/hatcat | tee hatcat3.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running './hatcat' and './cathat':" 1>&2
|
||||
show_diff hatcat2.txt cathat2.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running '\$(pwd)/hatcat' and '\$(pwd)/cathat':" 1>&2
|
||||
show_diff hatcat3.txt cathat3.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running '\$(pwd)/hatcat' and 'hatcat':" 1>&2
|
||||
show_diff hatcat3.txt hatcat.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running '\$(pwd)/hatcat' and './hatcat':" 1>&2
|
||||
show_diff hatcat3.txt hatcat2.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running '\$(pwd)/cathat' and 'cathat':" 1>&2
|
||||
show_diff cathat3.txt cathat.txt
|
||||
press_any_key
|
||||
|
||||
echo "Showing diff between running '\$(pwd)/cathat' and './cathat':" 1>&2
|
||||
show_diff cathat3.txt cathat2.txt
|
||||
press_any_key
|
||||
|
||||
# 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
|
||||
+8
-3
@@ -45,11 +45,16 @@ make CC="$CC" all >/dev/null || exit 1
|
||||
# clear screen after compilation so that only the entry is shown
|
||||
clear
|
||||
|
||||
echo "$ echo 'seeing or feeling is believing' | ./huffman" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: echo 'seeing or feeling is believing' | ./huffman: "
|
||||
echo 1>&2
|
||||
echo 'seeing or feeling is believing' | ./huffman 2>/dev/null
|
||||
echo 1>&2
|
||||
|
||||
echo "$ echo 'CC OR NOT CC' | ./huffman" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: echo 'CC OR NOT CC' | ./huffman: "
|
||||
echo 1>&2
|
||||
echo 'CC OR NOT CC' | ./huffman 2>/dev/null
|
||||
echo 1>&2
|
||||
|
||||
echo "$ $ echo 'CC OR NOT CC' | ./huffman | ./huffman" 1>&2
|
||||
read -r -n 1 -p "Press any key to run: echo 'CC OR NOT CC' | ./huffman | ./huffman: "
|
||||
echo 1>&2
|
||||
echo 'CC OR NOT CC' | ./huffman 2>/dev/null | ./huffman 2>/dev/null
|
||||
+11
-2
@@ -2074,6 +2074,11 @@ calls which has the four args.
|
||||
[Cody](#cody) added the [try.sh](/1995/savastio/try.sh) script.
|
||||
|
||||
|
||||
## <a name="1995_schnitzi"></a>[1995/schnitzi](/1995/schnitzi/schnitzi.c) ([README.md](/1995/schnitzi/README.md]))
|
||||
|
||||
[Cody](#cody) added the [try.sh](/1995/schnitzi/try.sh) script.
|
||||
|
||||
|
||||
## <a name="1995_vanschnitz"></a>[1995/vanschnitz](/1995/vanschnitz/vanschnitz.c) ([README.md](/1995/vanschnitz/README.md))
|
||||
|
||||
[Cody](#cody) added the authors' [spoiler as a C
|
||||
@@ -2082,6 +2087,8 @@ cases all the code should be available for the wider audience, without having to
|
||||
extract it. The exception is when the files are created by the entry or the
|
||||
entry decrypts the text or something like that.
|
||||
|
||||
Cody also added the [try.sh](/1995/vanschnitz/try.sh) script.
|
||||
|
||||
|
||||
# <a name="1996"></a>1996
|
||||
|
||||
@@ -2092,8 +2099,8 @@ entry decrypts the text or something like that.
|
||||
also fixed an infinite loop in the try commands. The problem with the infinite
|
||||
loop is that the file `august.oc` had to have lines starting with `#` removed
|
||||
and it was not being done. After this is done with say `sed(/1)` (like `sed -i''
|
||||
'/^#/d' august.oc` which has been added to both the remarks and the try.sh
|
||||
script as described below) the code can proceed. This problem existed in macOS.
|
||||
'/^#/d' august.oc` which has been added to both the remarks and the `try.sh`
|
||||
script noted below) the code can proceed. This problem existed in macOS.
|
||||
|
||||
Cody also added the [try.sh](/1996/august/try.sh) script that runs all the
|
||||
commands given in the try section to simplify it as there are quite a lot of
|
||||
@@ -2116,6 +2123,8 @@ number is printed on a line by itself rather than having a long string of
|
||||
numbers on the same line. This was not put in an alternate version but perhaps
|
||||
it should be.
|
||||
|
||||
Cody also added the [try.sh](/1996/dalbec/try.sh) script.
|
||||
|
||||
|
||||
## <a name="1996_eldby"></a>[1996/eldby](/1996/eldby/eldby.c) ([README.md](/1996/eldby/README.md]))
|
||||
|
||||
|
||||
Reference in new issue
Block a user