diff --git a/2006/borsanyi/.gitignore b/2006/borsanyi/.gitignore index 1c6b1a052..5761bd3ec 100644 --- a/2006/borsanyi/.gitignore +++ b/2006/borsanyi/.gitignore @@ -3,7 +3,7 @@ borsanyi borsanyi.orig *.dSYM -example.gif +*.gif indent indent.c indent.o diff --git a/2006/borsanyi/README.md b/2006/borsanyi/README.md index 7eed56360..cd40db5dd 100644 --- a/2006/borsanyi/README.md +++ b/2006/borsanyi/README.md @@ -26,9 +26,14 @@ For more detailed information see [2006 borsanyi in bugs.md](/bugs.md#2006-borsa ## Try: ```sh -./borsanyi ioccc@example.com > example.gif +./try.sh ``` +We recommend you input for the filename `example.gif` and for the string +`ioccc@example.com`. The script will not overwrite files. It runs the program in +a loop until you answer that you do not wish to make another. + + ## Judges' remarks: diff --git a/2006/borsanyi/try.sh b/2006/borsanyi/try.sh new file mode 100755 index 000000000..31df8b24f --- /dev/null +++ b/2006/borsanyi/try.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 2006/borsanyi +# + +# 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 + +echo "When using this script, ask yourself what happens if you put a string > 42" 1>&2 +echo "characters long and what happens if you input characters not in the regexp:" 1>&2 +echo "'a-z_A-Z0-9@.-'." 1>&2 +echo 1>&2 + +while :; do + read -r -p "Enter a target file name: " filename + if [[ -n "$filename" ]]; then + if [[ -f "$filename" ]]; then + echo "$0: ERROR: $filename already exists, will not overwrite." 1>&2 + continue + fi + else + echo "$0: ERROR: empty file name, try again." 1>&2 + continue + fi + read -r -p "Enter a string to write to the file: " email + if [[ -n "$email" ]]; then + ./borsanyi "$email" > "$filename" + if [[ -f "$filename" ]]; then + echo "Wrote image to $filename" 1>&2 + else + echo "$0: ERROR: failed to write to $filename" 1>&2 + fi + fi + read -r -n 1 -p "Do you wish to make another one (Y/N)? " + if [[ "$REPLY" != "Y" && "$REPLY" != "y" ]]; then + break + fi + echo 1>&2 +done diff --git a/thanks-for-help.md b/thanks-for-help.md index 00a579838..17135538a 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -3414,9 +3414,11 @@ Cody also added the [try.sh](/2006/birken/try.sh) script. ## [2006/borsanyi](/2006/borsanyi/borsanyi.c) ([README.md](/2006/borsanyi/README.md])) -[Cody](#cody) fixed the Makefile under some systems where the `lpthread` was not +[Cody](#cody) fixed the Makefile to work in systems where the `lpthread` is not implicitly linked in. +Cody also added the [try.sh](/2006/borsanyi/try.sh) script. + ## [2006/grothe](/2006/grothe/grothe.c) ([README.md](/2006/grothe/README.md))