Merge pull request #2095 from xexyl/mills22015-try
Improve 2015/mills2/try.sh
This commit is contained in:
21 files changed
+391
-175
No files matched your search
+6
-27
@@ -32,43 +32,22 @@ endoh3()
|
|||||||
fi
|
fi
|
||||||
if [[ -f "$1" && -r "$1" ]]; then
|
if [[ -f "$1" && -r "$1" ]]; then
|
||||||
if [[ -n "$SOX" ]]; then
|
if [[ -n "$SOX" ]]; then
|
||||||
echo "$ cat $1 | ./endoh3 | $SOX -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio" 1>&2
|
echo "$ ./endoh3 < $1 | $SOX -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio" 1>&2
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
read -r -n 1 -p "Press any key to continue: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
# The author suggested the form below and it simplifies the command
|
./endoh3 < "$1" | "$SOX" -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio
|
||||||
# as well so we disable the supposed useless cat (there are no
|
|
||||||
# useless cats).
|
|
||||||
#
|
|
||||||
# SC2002 (style): Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
|
|
||||||
# https://www.shellcheck.net/wiki/SC2002
|
|
||||||
# shellcheck disable=SC2002
|
|
||||||
cat "$1" | ./endoh3 | "$SOX" -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
elif [[ -n "$PADSP" ]]; then
|
elif [[ -n "$PADSP" ]]; then
|
||||||
echo "$ cat $1 | ./endoh3 | $PADSP tee /dev/dsp > /dev/null" 1>&2
|
echo "$ ./endoh3 < $1 | $PADSP tee /dev/dsp > /dev/null" 1>&2
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
read -r -n 1 -p "Press any key to continue: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
# The author suggested the form below and it simplifies the command
|
./endoh3 < "$1" | "$PADSP" tee /dev/dsp > /dev/null
|
||||||
# as well so we disable the supposed useless cat (there are no
|
|
||||||
# useless cats).
|
|
||||||
#
|
|
||||||
# SC2002 (style): Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
|
|
||||||
# https://www.shellcheck.net/wiki/SC2002
|
|
||||||
# shellcheck disable=SC2002
|
|
||||||
cat "$1" | ./endoh3 | "$PADSP" tee /dev/dsp > /dev/null
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
elif [[ -n "$RUBY" ]]; then
|
elif [[ -n "$RUBY" ]]; then
|
||||||
echo "$ cat $1 | ./endoh3 | $RUBY wavify.rb > $1.wav" 1>&2
|
echo "$ ./endoh3 < $1 | $RUBY wavify.rb > $1.wav" 1>&2
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
read -r -n 1 -p "Press any key to continue: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
# The author suggested the form below and it simplifies the command
|
./endoh3 < "$1" | "$RUBY" wavify.rb > "$1".wav
|
||||||
# as well so we disable the supposed useless cat (there are no
|
|
||||||
# useless cats).
|
|
||||||
#
|
|
||||||
# SC2002 (style): Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
|
|
||||||
# https://www.shellcheck.net/wiki/SC2002
|
|
||||||
# shellcheck disable=SC2002
|
|
||||||
cat "$1" | ./endoh3 | "$RUBY" wavify.rb > "$1".wav
|
|
||||||
echo "Now try playing $1.wav in a program that plays WAV files." 1>&2
|
echo "Now try playing $1.wav in a program that plays WAV files." 1>&2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
else
|
else
|
||||||
|
|||||||
+1
-1
@@ -8,4 +8,4 @@ indent.o
|
|||||||
prog
|
prog
|
||||||
prog.alt
|
prog.alt
|
||||||
prog.orig
|
prog.orig
|
||||||
prog.raw
|
*.raw
|
||||||
+1
-1
@@ -203,7 +203,7 @@ clean:
|
|||||||
clobber: clean
|
clobber: clean
|
||||||
${RM} -f ${TARGET} ${ALT_TARGET}
|
${RM} -f ${TARGET} ${ALT_TARGET}
|
||||||
${RM} -rf *.dSYM
|
${RM} -rf *.dSYM
|
||||||
${RM} -f audio_file.raw prog.raw
|
${RM} -f *.raw
|
||||||
@-if [ -e sandwich ]; then \
|
@-if [ -e sandwich ]; then \
|
||||||
${RM} -f sandwich; \
|
${RM} -f sandwich; \
|
||||||
echo 'ate sandwich'; \
|
echo 'ate sandwich'; \
|
||||||
|
|||||||
+4
-4
@@ -23,16 +23,16 @@ For more detailed information see [2014 vik in bugs.md](/bugs.md#2014-vik).
|
|||||||
## To use:
|
## To use:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./prog > foo.c
|
echo foo | ./prog > audio_file.raw
|
||||||
|
|
||||||
|
echo foo | ./prog | mplayer -demuxer rawaudio -
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Try:
|
## Try:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
echo 'Want to hear me beep?' | ./prog > audio_file.raw
|
./try.sh
|
||||||
|
|
||||||
echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio -
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Executable
+70
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# try.sh - demonstrate IOCCC winner 2014/vik
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# remove target files for saving them
|
||||||
|
rm -f beep.raw chocolate.raw
|
||||||
|
|
||||||
|
write_to_raw()
|
||||||
|
{
|
||||||
|
if [[ "$#" -ne 2 ]]; then
|
||||||
|
echo "$0: usage: write_to_raw file arg" 1>&2
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: echo $2 | ./prog > $1.raw: "
|
||||||
|
echo "$2" | ./prog > "$1".raw
|
||||||
|
}
|
||||||
|
|
||||||
|
# now determine if we have mplayer(1)
|
||||||
|
MPLAYER="$(type -P mplayer)"
|
||||||
|
if [[ -n "$MPLAYER" ]]; then
|
||||||
|
read -r -n 1 -p "Press any key to play: 'Want to hear me beep?': "
|
||||||
|
echo 1>&2
|
||||||
|
echo "$ echo 'Want to hear me beep?' | ./prog | mplayer -demuxer rawaudio -" 1>&2
|
||||||
|
echo 'Want to hear me beep?' | ./prog | mplayer -demuxer rawaudio -
|
||||||
|
echo 1>&2
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog e < beep.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
./prog e < beep.raw
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to play: 'No. I want chocolate!': "
|
||||||
|
echo 1>&2
|
||||||
|
echo "$ echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio - | tee chocolate.raw" 1>&2
|
||||||
|
echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio - | tee chocolate.raw
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog e < chocolate.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: echo 'Want to hear me beep?' | ./prog > beep.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
echo 'Want to hear me beep?' | ./prog > beep.raw
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog e < beep.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
./prog e < beep.raw
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: echo 'No. I want chocolate!' | ./prog > chocolate.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
echo 'No. I want chocolate!' | ./prog > chocolate.raw
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog e < chocolate.raw: "
|
||||||
|
echo 1>&2
|
||||||
|
./prog e < chocolate.raw
|
||||||
+29
-18
@@ -15,41 +15,52 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
# clear screen after compilation so that only the entry is shown
|
# clear screen after compilation so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
echo "$ ./calc '?0x3343<<2'" 1>&2
|
read -r -n 1 -p "Press any key to run: ./calc '?0x3343<<2': "
|
||||||
|
echo 1>&2
|
||||||
./calc '?0x3343<<2'
|
./calc '?0x3343<<2'
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ echo '?0x3343<<2' | ./ecalc" 1>&2
|
read -r -n 1 -p "Press any key to run: echo '?0x3343<<2' | ./ecalc: "
|
||||||
|
echo 1>&2
|
||||||
echo '?0x3343<<2' | ./ecalc
|
echo '?0x3343<<2' | ./ecalc
|
||||||
|
|
||||||
|
|
||||||
echo "$ grep '[0-9]' prog.c" 1>&2
|
|
||||||
read -r -n 1 -p "Press any key to continue (notice how there are no digits!): "
|
|
||||||
echo 1>&2
|
|
||||||
grep -c '[0-9]' prog.c
|
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: ./calc < test.in: "
|
|
||||||
echo 1>&2
|
|
||||||
./calc < test.in
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to show try.this.txt: "
|
|
||||||
|
read -r -n 1 -p "Press any key to run: grep '[0-9]' prog.c || echo \"no digits in prog.c!\": "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
cat try.this.txt
|
grep -q '[0-9]' prog.c || echo "no digits in prog.c!"
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to show calc.in (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
less -rEXFK test.in
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./calc < test.in (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
./calc < test.in | less -rEXFK
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to show try.this.txt (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
less -rEXFK try.this.txt
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: ./calc < try.this.txt: "
|
read -r -n 1 -p "Press any key to run: ./calc < try.this.txt: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./calc < try.this.txt
|
./calc < try.this.txt
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to show the hex value of 42: "
|
read -r -n 1 -p "Press any key to run: ./calc 42 # show hex value of 42: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "$ ./calc 42" 1>&2
|
|
||||||
./calc 42
|
./calc 42
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: ./calc '1<<22-1' (show mask value for 22 bits): "
|
read -r -n 1 -p "Press any key to run: ./calc '1<<22-1' # show mask value for 22 bits: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./calc '1<<22-1'
|
./calc '1<<22-1'
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: ./calc ?0x11223344 (byte-swapped value of 0x11223344): "
|
read -r -n 1 -p "Press any key to run: ./calc ?0x11223344 # byte-swapped value of 0x11223344: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./calc ?0x11223344
|
./calc ?0x11223344
|
||||||
|
echo 1>&2
|
||||||
@@ -21,6 +21,10 @@ echo Some text | ./prog
|
|||||||
./try.sh
|
./try.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
As the script says if you want to move to the next command at any point
|
||||||
|
(lorem-ipsum.txt takes a while to print in particular) you may do so by hitting
|
||||||
|
ctrl-c/sending intr.
|
||||||
|
|
||||||
|
|
||||||
## Alternate code:
|
## Alternate code:
|
||||||
|
|
||||||
|
|||||||
+42
-6
@@ -15,24 +15,60 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
# clear screen after compilation so that only the entry is shown
|
# clear screen after compilation so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
echo "$ echo \"Hello, world!\" | ./prog" 1>&2
|
# set it so that when program is terminated through various signals we re-enable
|
||||||
|
# the cursor
|
||||||
|
trap "tput cnorm;echo" 0 1 2 3 15
|
||||||
|
|
||||||
|
# temporarily disable cursor
|
||||||
|
tput civis
|
||||||
|
|
||||||
|
echo "If you wish to move to the next command during the output of the current" 1>&2
|
||||||
|
echo "you may send ctrl-c/intr to do so. This might be especially useful if you" 1>&2
|
||||||
|
echo "get tired of watching lorem-ipsum.txt." 1>&2
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: echo \"Hello, world!\" | ./prog: "
|
||||||
|
echo 1>&2
|
||||||
echo "Hello, world!" | ./prog
|
echo "Hello, world!" | ./prog
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ echo \"IOCCC 2015\" | ./prog" 1>&2
|
read -r -n 1 -p "Press any key to run: echo \"IOCCC 2015\" | ./prog: "
|
||||||
|
echo 1>&2
|
||||||
echo "IOCCC 2015" | ./prog
|
echo "IOCCC 2015" | ./prog
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ DRAFT=1 ./prog < prog.c" 1>&2
|
read -r -n 1 -p "Press any key to show prog.c (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
less -rEXFK prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: DRAFT=1 ./prog < prog.c: "
|
||||||
|
echo 1>&2
|
||||||
DRAFT=1 ./prog < prog.c
|
DRAFT=1 ./prog < prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog < prog.c" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog < prog.c: "
|
||||||
|
echo 1>&2
|
||||||
./prog < prog.c
|
./prog < prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog < lorem-ipsum.txt" 1>&2
|
read -r -n 1 -p "Press any key to show lorem-ipsum.txt (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
less -rEXFK lorem-ipsum.txt
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog < lorem-ipsum.txt: "
|
||||||
|
echo 1>&2
|
||||||
./prog < lorem-ipsum.txt
|
./prog < lorem-ipsum.txt
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "Type in text, hitting enter after each line." 1>&2
|
echo "Type in text, hitting enter after each line." 1>&2
|
||||||
echo "Watch the output each time and try again." 1>&2
|
echo "Watch the output each time and try again." 1>&2
|
||||||
echo "Hit ctrl-c to exit." 1>&2
|
echo "Hit ctrl-c to exit." 1>&2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "$ ./prog" 1>&2
|
read -r -n 1 -p "Press any key to start: "
|
||||||
|
echo 1>&2
|
||||||
./prog
|
./prog
|
||||||
|
|
||||||
|
# make sure to re-enable cursor
|
||||||
|
tput cnorm
|
||||||
+14
-6
@@ -15,20 +15,28 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
# clear screen after compilation so that only the entry is shown
|
# clear screen after compilation so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
echo "$ cat prog.c" 1>&2
|
read -r -n 1 -p "Press any key to run: cat prog.c: "
|
||||||
|
echo 1>&2
|
||||||
cat prog.c
|
cat prog.c
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog | diff -s - prog.c"
|
read -r -n 1 -p "Press any key to run: ./prog: "
|
||||||
./prog | diff -s - prog.c
|
echo 1>&2
|
||||||
|
./prog
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ less -EXF prog.c" 1>&2
|
read -r -n 1 -p "Press any key to run: less -rEXFK prog.c: "
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
echo 1>&2
|
||||||
less -EXF prog.c
|
less -EXF prog.c
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ wc -c prog.c" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog | diff -s - prog.c: "
|
||||||
|
echo 1>&2
|
||||||
|
./prog | diff -s - prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: wc -c prog.c: "
|
||||||
|
echo 1>&2
|
||||||
wc -c prog.c
|
wc -c prog.c
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "Can you figure out the inconsistencies?" 1>&2
|
echo "Can you figure out the inconsistencies?" 1>&2
|
||||||
|
|||||||
+6
-8
@@ -13,24 +13,22 @@ fi
|
|||||||
# clear screen so that only the entry is shown
|
# clear screen so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: less -EXF prog.c (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: less -rEXFK prog.c (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
less -EXF prog.c
|
less -EXF prog.c
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ make future" 1>&2
|
read -r -n 1 -p "Press any key to: make future: "
|
||||||
|
echo 1>&2
|
||||||
make future || exit 1
|
make future || exit 1
|
||||||
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "Will go back to the future and run 1984/mullender through prog. To quit" 1>&2
|
echo "Will go back to the future and run 1984/mullender through prog. To quit" 1>&2
|
||||||
echo "the program hit ctrl-c/intr." 1>&2
|
echo "the program hit ctrl-c/intr. We suggest you try hitting enter or another" 1>&2
|
||||||
|
echo "key when the output reaches the end of the line." 1>&2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "You might want to try hitting enter or another key when the output reaches" 1>&2
|
|
||||||
echo "the end of the line." 1>&2
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
read -r -n 1 -p "Press any key to run: ./prog: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "$ ./prog" 1>&2
|
|
||||||
./prog
|
./prog
|
||||||
+31
-14
@@ -15,44 +15,61 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
# clear screen after compilation so that only the entry is shown
|
# clear screen after compilation so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
|
# check if perl is installed (for later)
|
||||||
PERL="$(type -P perl)"
|
PERL="$(type -P perl)"
|
||||||
|
|
||||||
echo "$ ./prog @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @
|
./prog @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @
|
./prog @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @
|
./prog @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @
|
./prog @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @ @
|
./prog @ @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @ @ @
|
./prog @ @ @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @ @ @ @
|
./prog @ @ @ @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
|
./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog @ @ @ @ @ @ @ @ @ @ @ @" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog @ @ @ @ @ @ @ @ @ @ @ @: "
|
||||||
|
echo 1>&2
|
||||||
./prog @ @ @ @ @ @ @ @ @ @ @ @
|
./prog @ @ @ @ @ @ @ @ @ @ @ @
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog \"\$(< Makefile)\"" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog \"\$(< Makefile)\": "
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog "$(< Makefile)"
|
./prog "$(< Makefile)"
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
if [[ -n "$PERL" ]]; then
|
if [[ -n "$PERL" ]]; then
|
||||||
echo "$ ./prog \$($PERL -e 'print "@ " x (2*3*5*7);')" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog \"\$($PERL -e 'print \"@ \" x (2*3*5*7);')\": "
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog "$($PERL -e 'print "@ " x (2*3*5*7);')"
|
./prog "$($PERL -e 'print "@ " x (2*3*5*7);')"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
+1
-1
@@ -27,7 +27,7 @@ echo something | ./prog
|
|||||||
## Try:
|
## Try:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
echo "" | ./prog
|
./try.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+27
-10
@@ -16,30 +16,47 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
clear
|
clear
|
||||||
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./prog" 1>&2
|
read -r -n 1 -p "Press any key to run: echo IOCCC | ./prog: "
|
||||||
|
echo 1>&2
|
||||||
echo IOCCC | ./prog
|
echo IOCCC | ./prog
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog < rfc1321.txt" 1>&2
|
read -r -n 1 -p "Press any key to run: head -n 13 rfc1321.txt (space = next page, q = quit): "
|
||||||
./prog < rfc1321.txt
|
echo 1>&2
|
||||||
|
head rfc1321.txt -n 13 | less -rEXFK
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ echo \"\" | ./prog" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog < rfc1321.txt: "
|
||||||
|
echo 1>&2
|
||||||
|
./prog < rfc1321.txt | less -rEXFK
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: echo \"\" | ./prog: "
|
||||||
|
echo 1>&2
|
||||||
echo "" | ./prog
|
echo "" | ./prog
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "For the next two, observe the magical values: "
|
read -r -n 1 -p "Press any key to show prog.c (space = next page, q = quit): "
|
||||||
read -r -n 1 -p "Press any key to continue: "
|
echo 1>&2
|
||||||
|
less -rEXFK prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
echo "For the next two, observe the magical values."
|
||||||
|
echo 1>&2
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog < prog.c | cut -c-5: "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo "$ ./prog < prog.c | cut -c-5" 1>&2
|
|
||||||
./prog < prog.c | cut -c-5
|
./prog < prog.c | cut -c-5
|
||||||
|
|
||||||
echo "$ ./prog < Makefile | cut -c-4" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog < Makefile | cut -c-4: "
|
||||||
|
echo 1>&2
|
||||||
./prog < Makefile | cut -c-4
|
./prog < Makefile | cut -c-4
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ wc -c large" 1>&2
|
read -r -n 1 -p "Press any key to run: wc -c large: "
|
||||||
|
echo 1>&2
|
||||||
wc -c large
|
wc -c large
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog < large" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog < large: "
|
||||||
|
echo 1>&2
|
||||||
./prog < large
|
./prog < large
|
||||||
+1
-20
@@ -1,31 +1,12 @@
|
|||||||
#
|
#
|
||||||
# sort with: sort -d -u
|
# sort with: sort -d -u
|
||||||
123.tmp
|
|
||||||
1.tmp
|
|
||||||
ABCABBA.tmp
|
|
||||||
ABCDEFGHIJK.tmp
|
|
||||||
ABCDEF.tmp
|
|
||||||
ABCDE.tmp
|
|
||||||
ABCD.tmp
|
|
||||||
ABCEFGIJKDEFGHIJK.tmp
|
|
||||||
ABD.tmp
|
|
||||||
ABXYEFCD.tmp
|
|
||||||
ACBDEACBED.tmp
|
|
||||||
ACDBECFD.tmp
|
|
||||||
ACEBDABBABED.tmp
|
|
||||||
A.tmp
|
|
||||||
CBABAC.tmp
|
|
||||||
EMPTY.tmp
|
|
||||||
curds.tmp
|
|
||||||
*.dSYM
|
*.dSYM
|
||||||
indent
|
indent
|
||||||
indent.c
|
indent.c
|
||||||
indent.o
|
indent.o
|
||||||
makeholes
|
makeholes
|
||||||
nuked.tmp
|
|
||||||
patch.tmp
|
|
||||||
prog
|
prog
|
||||||
prog.alt
|
prog.alt
|
||||||
prog.orig
|
prog.orig
|
||||||
|
*.tmp
|
||||||
war-and-peace.txt
|
war-and-peace.txt
|
||||||
whey.tmp
|
|
||||||
+1
-1
@@ -214,7 +214,7 @@ clean:
|
|||||||
clobber: clean
|
clobber: clean
|
||||||
${RM} -f ${TARGET} ${ALT_TARGET}
|
${RM} -f ${TARGET} ${ALT_TARGET}
|
||||||
${RM} -rf *.dSYM
|
${RM} -rf *.dSYM
|
||||||
${RM} -f curds.tmp nuked.tmp whey.tmp makeholes
|
${RM} -f makeholes *.tmp
|
||||||
@-if [ -e sandwich ]; then \
|
@-if [ -e sandwich ]; then \
|
||||||
${RM} -f sandwich; \
|
${RM} -f sandwich; \
|
||||||
echo 'ate sandwich'; \
|
echo 'ate sandwich'; \
|
||||||
|
|||||||
+66
-10
@@ -16,22 +16,78 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
clear
|
clear
|
||||||
|
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog prog.alt.c prog.c: "
|
||||||
|
echo 1>&2
|
||||||
./prog prog.alt.c prog.c
|
./prog prog.alt.c prog.c
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
make test
|
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 -d ABXYEFCD.tmp ACDBECFD.tmp: "
|
||||||
|
echo 1>&2
|
||||||
./prog -d ABXYEFCD.tmp ACDBECFD.tmp
|
./prog -d ABXYEFCD.tmp ACDBECFD.tmp
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog ABXYEFCD.tmp ACDBECFD.tmp: "
|
||||||
|
echo 1>&2
|
||||||
./prog ABXYEFCD.tmp ACDBECFD.tmp
|
./prog ABXYEFCD.tmp ACDBECFD.tmp
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
rm -f curds.tmp whey.tmp
|
rm -f curds.tmp whey.tmp
|
||||||
cp -f cc.1 curds.tmp
|
read -r -n 1 -p "Press any key to run: cp -vf cc.1 curds.tmp: "
|
||||||
cp -f cc.1 whey.tmp
|
echo 1>&2
|
||||||
chmod 666 whey.tmp
|
cp -vf cc.1 curds.tmp
|
||||||
make makeholes
|
echo 1>&2
|
||||||
./makeholes -n 1000 whey.tmp
|
read -r -n 1 -p "Press any key to run: cp -vf cc.1 whey.tmp: "
|
||||||
./prog curds.tmp whey.tmp
|
echo 1>&2
|
||||||
./avgtime.sh 100 ./prog curds.tmp whey.tmp
|
cp -vf cc.1 whey.tmp
|
||||||
|
|
||||||
cp -f war-and-peace.txt nuked.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 curds.tmp whey.tmp (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
./prog curds.tmp whey.tmp | less -rEXFK
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./avgtime.sh 100 ./prog curds.tmp whey.tmp: "
|
||||||
|
echo 1>&2
|
||||||
|
./avgtime.sh 100 ./prog 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
|
./makeholes -c'~' -n 1000 nuked.tmp
|
||||||
./prog war-and-peace.txt 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 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 1>&2
|
||||||
./avgtime.sh 100 ./prog war-and-peace.txt nuked.tmp
|
./avgtime.sh 100 ./prog war-and-peace.txt nuked.tmp
|
||||||
|
echo 1>&2
|
||||||
+24
-20
@@ -15,47 +15,51 @@ make CC="$CC" all >/dev/null || exit 1
|
|||||||
# clear screen after compilation so that only the entry is shown
|
# clear screen after compilation so that only the entry is shown
|
||||||
clear
|
clear
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: printf '000I\236\f\31H\260\240\301\203' > ioccc.Z: "
|
||||||
echo "$ printf '000I\236\f\31H\260\240\301\203' > ioccc.Z" 1>&2
|
echo 1>&2
|
||||||
printf '000I\236\f\31H\260\240\301\203' > ioccc.Z
|
printf '000I\236\f\31H\260\240\301\203' > ioccc.Z
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog ioccc.Z" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog ioccc.Z: "
|
||||||
|
echo 1>&2
|
||||||
./prog ioccc.Z
|
./prog ioccc.Z
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ dd bs=512 count=128 < /dev/urandom > test1" 1>&2
|
read -r -n 1 -p "Press any key to run: dd bs=512 count=128 < /dev/urandom > test1: "
|
||||||
|
echo 1>&2
|
||||||
dd bs=512 count=128 < /dev/urandom > test1
|
dd bs=512 count=128 < /dev/urandom > test1
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ compress < test1 > test1.Z" 1>&2
|
read -r -n 1 -p "Press any key to run: compress < test1 > test1.Z: "
|
||||||
|
echo 1>&2
|
||||||
compress < test1 > test1.Z
|
compress < test1 > test1.Z
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ time ./prog test1.Z | cmp - test1" 1>&2
|
read -r -n 1 -p "Press any key to run: time ./prog test1.Z | diff -s - test1: "
|
||||||
time ./prog test1.Z | cmp - test1
|
echo 1>&2
|
||||||
|
time ./prog test1.Z | diff -s - test1
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ dd bs=512 count=128 < /dev/zero > test2" 1>&2
|
read -r -n 1 -p "Press any key to run: dd bs=512 count=128 < /dev/zero > test2: "
|
||||||
|
echo 1>&2
|
||||||
dd bs=512 count=128 < /dev/zero > test2
|
dd bs=512 count=128 < /dev/zero > test2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ compress < test2 > test2.Z" 1>&2
|
read -r -n 1 -p "Press any key to run: compress < test2 > test2.Z: "
|
||||||
|
echo 1>&2
|
||||||
compress < test2 > test2.Z
|
compress < test2 > test2.Z
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ time ./prog test2.Z | cmp - test2" 1>&2
|
read -r -n 1 -p "Press any key to run: time ./prog test2.Z | diff -s - test2: "
|
||||||
time ./prog test2.Z | cmp - test2
|
echo 1>&2
|
||||||
|
time ./prog test2.Z | diff -s - test2
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
|
read -r -n 1 -p "Press any key to run: ./prog ioccc_guidelines.txt.Z (space = next page, q = quit): "
|
||||||
|
echo 1>&2
|
||||||
|
./prog ioccc_guidelines.txt.Z | less -rEXFK
|
||||||
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ ./prog ioccc_guidelines.txt.Z" 1>&2
|
read -r -n 1 -p "Press any key to run: ./prog ioccc_rules.txt.Z (space = next page, q = quit): "
|
||||||
read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog ioccc_guidelines.txt.Z | less -EXF
|
./prog ioccc_rules.txt.Z | less -rEXFK
|
||||||
|
|
||||||
echo 1>&2
|
|
||||||
echo "$ ./prog ioccc_rules.txt.Z" 1>&2
|
|
||||||
read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
|
|
||||||
echo 1>&2
|
|
||||||
./prog ioccc_rules.txt.Z | less -EXF
|
|
||||||
+5
-7
@@ -19,16 +19,15 @@ clear
|
|||||||
echo "$ make -B V=2 run" 1>&2
|
echo "$ make -B V=2 run" 1>&2
|
||||||
read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
make CC="${CC}" -B V=2 run | less -EXF
|
read -r -n 1 -p "Press any key to run: make CC=${CC} -B V=2 run (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
make CC="${CC}" -B V=2 run | less -rEXFK
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
|
|
||||||
echo "$ strings prog | grep '(,)'" 1>&2
|
read -r -n 1 -p "Press any key to run: strings prog | grep '(,)' (space = next page, q = quit): "
|
||||||
read -r -n 1 -p "Press any key to continue (space = next page, q = quit): "
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
strings prog | grep '(,)' | less -EXF
|
strings prog | grep '(,)' | less -EXF
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
echo 1>&2
|
|
||||||
|
|
||||||
for h in machine*.h; do
|
for h in machine*.h; do
|
||||||
for t in tape*.h; do
|
for t in tape*.h; do
|
||||||
@@ -37,9 +36,8 @@ for h in machine*.h; do
|
|||||||
if [[ "$REPLY" == "q" || "$REPLY" == "Q" ]]; then
|
if [[ "$REPLY" == "q" || "$REPLY" == "Q" ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
echo 1>&2
|
|
||||||
make -B MACHINE="$h" TAPE="$t" V=1 run
|
make CC="${CC}" -B MACHINE="$h" TAPE="$t" V=1 run
|
||||||
echo 1>&2
|
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|||||||
+10
-10
@@ -20,32 +20,32 @@ echo "$ ./prog 19" 1>&2
|
|||||||
|
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 2410 (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 2410 (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 2410 | less -EXF
|
./prog 2410 | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog abfff (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog abfff (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog abfff | less -EXF
|
./prog abfff | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 27f8cebf (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 27f8cebf (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 27f8cebf | less -EXF
|
./prog 27f8cebf | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 246f8fddf (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 246f8fddf (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 246f8fddf | less -EXF
|
./prog 246f8fddf | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 2e95ab51ffea9de (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 2e95ab51ffea9de (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 2e95ab51ffea9de | less -EXF
|
./prog 2e95ab51ffea9de | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog e6a5c22fd7bde9f (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog e6a5c22fd7bde9f (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog e6a5c22fd7bde9f | less -EXF
|
./prog e6a5c22fd7bde9f | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 1b7dd73a937485bf (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 1b7dd73a937485bf (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 1b7dd73a937485bf | less -EXF
|
./prog 1b7dd73a937485bf | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 7d3237680d190a77e53751b (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 7d3237680d190a77e53751b (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 7d3237680d190a77e53751b | less -EXF
|
./prog 7d3237680d190a77e53751b | less -rEXFK
|
||||||
read -r -n 1 -p "Press any key to run: ./prog 302ab3d052fb87c06228d249581be0e4 (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run: ./prog 302ab3d052fb87c06228d249581be0e4 (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 302ab3d052fb87c06228d249581be0e4 | less -EXF
|
./prog 302ab3d052fb87c06228d249581be0e4 | less -rEXFK
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
read -r -n 1 -p "Press any key to run ./prog with a googol (10^100) (space = next page, q = quit): "
|
read -r -n 1 -p "Press any key to run ./prog with a googol (10^100) (space = next page, q = quit): "
|
||||||
echo 1>&2
|
echo 1>&2
|
||||||
./prog 1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F10000000000000000000000000 | less -EXF
|
./prog 1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F10000000000000000000000000 | less -rEXFK
|
||||||
@@ -3199,17 +3199,50 @@ This program will very likely crash if no arg is given.
|
|||||||
### Source code: [2014/vik/prog.c](2014/vik/prog.c)
|
### Source code: [2014/vik/prog.c](2014/vik/prog.c)
|
||||||
### Information: [2014/vik/README.md](2014/vik/README.md)
|
### Information: [2014/vik/README.md](2014/vik/README.md)
|
||||||
|
|
||||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) discovered a bug that
|
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) discovered a bug to do
|
||||||
shows itself in some cases (it works in others) when working on his winning
|
with translating sound to text that shows itself in some cases (it works in
|
||||||
[2020 Enigma machine](2020/ferguson2/prog.c) ('Most enigmatic') entry. See his
|
others) when working on his winning [2020 Enigma machine](2020/ferguson2/prog.c)
|
||||||
[README.md](2020/ferguson2/README.md) for details (search for `vik` in the
|
('Most enigmatic') entry. See his [README.md](2020/ferguson2/README.md) for
|
||||||
file).
|
details (search for `vik` in the file). This one might be more of a limitation
|
||||||
|
but this is not known.
|
||||||
|
|
||||||
He provides a tip in testing the problem: it might help to use his Enigma
|
He provides a tip in testing the problem: it might help to use his Enigma
|
||||||
machine to find problems as it will allow you to verify what is correct and what
|
machine to find problems as it will allow you to verify what is correct and what
|
||||||
is not. Again see his README.md for details!
|
is not. Again see his README.md for details. However it is also possible to not
|
||||||
|
rely on the entry as the below shows. One should be able to do:
|
||||||
|
|
||||||
If you want to try and fix this (mis)feature, you are welcome to try.
|
|
||||||
|
```sh
|
||||||
|
echo 'No. I want chocolate!' | ./prog > chocolate.raw
|
||||||
|
|
||||||
|
./prog e < chocolate.raw
|
||||||
|
```
|
||||||
|
|
||||||
|
and get:
|
||||||
|
|
||||||
|
```
|
||||||
|
No. I want some chocolate!
|
||||||
|
```
|
||||||
|
|
||||||
|
but instead we get:
|
||||||
|
|
||||||
|
```
|
||||||
|
IT FHOCOLITE!
|
||||||
|
```
|
||||||
|
|
||||||
|
which is very wrong. If however one does:
|
||||||
|
|
||||||
|
```
|
||||||
|
echo IOCCC | ./prog > ioccc.raw
|
||||||
|
|
||||||
|
./prog e < ioccc.raw
|
||||||
|
```
|
||||||
|
|
||||||
|
they will properly get:
|
||||||
|
|
||||||
|
```
|
||||||
|
IOCCC
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
# 2015
|
# 2015
|
||||||
|
|||||||
+8
-4
@@ -4182,7 +4182,11 @@ clean`) removes those files and so that they are ignored by `.gitignore`.
|
|||||||
|
|
||||||
## <a name="2014_vik"></a>[2014/vik](/2014/vik/prog.c) ([README.md](/2014/vik/README.md))
|
## <a name="2014_vik"></a>[2014/vik](/2014/vik/prog.c) ([README.md](/2014/vik/README.md))
|
||||||
|
|
||||||
[Cody](#cody) added an alternate version that is based on the author's remarks that will
|
[Cody](#cody) added the [try.sh](/2014/vik/try.sh) script. Cody notes that there
|
||||||
|
is a bug that will show itself as one of the features does not work right. The
|
||||||
|
translation of the raw audio to text is buggy in some cases.
|
||||||
|
|
||||||
|
Cody also added an alternate version that is based on the author's remarks that will
|
||||||
theoretically work for Microsoft Windows compilers (if anything works in Windows
|
theoretically work for Microsoft Windows compilers (if anything works in Windows
|
||||||
:-) ). We have no way of testing this and if anything has changed since 2014
|
:-) ). We have no way of testing this and if anything has changed since 2014
|
||||||
that would break it we do not know.
|
that would break it we do not know.
|
||||||
@@ -4225,9 +4229,9 @@ This was done for both the [prog.c](/2015/burton/prog.c) and
|
|||||||
[prog.alt.c](/2015/burton/prog.alt.c). The Makefile was also updated to build
|
[prog.alt.c](/2015/burton/prog.alt.c). The Makefile was also updated to build
|
||||||
`eprog` and `eprog.alt` to make use of the feature more easily. Each is a new
|
`eprog` and `eprog.alt` to make use of the feature more easily. Each is a new
|
||||||
target (first in `TARGET` and second in `ALT_TARGET`) which have a prerequisite
|
target (first in `TARGET` and second in `ALT_TARGET`) which have a prerequisite
|
||||||
of `${PROG}` and `${PROG}.alt` respectively and which copies `prog` and
|
of `${PROG}` and `${PROG}.alt` respectively both of which also copy the `prog`
|
||||||
`prog.alt` to `eprog` and `eprog.alt` respectively. With these changes now one
|
(`prog` or `eprog`) to the respective `eprog` (`eprog` or `eprog.alt`). With
|
||||||
can easily use the echo feature the author implemented.
|
these changes now one can easily use the echo feature the author implemented.
|
||||||
|
|
||||||
Cody also added the [try.sh](/2015/burton/try.sh) script. This involved
|
Cody also added the [try.sh](/2015/burton/try.sh) script. This involved
|
||||||
adding a text file, [try.this.txt](/2015/burton/try.this.txt).
|
adding a text file, [try.this.txt](/2015/burton/try.this.txt).
|
||||||
|
|||||||
Reference in new issue
Block a user