From 231530d8900e158695e85d248ef307cc4d4a3955 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Thu, 11 Jan 2024 09:41:43 -0800 Subject: [PATCH] Add try.sh to 1989/fubar --- 1989/fubar/Makefile | 3 ++- 1989/fubar/README.md | 7 +++++-- 1989/fubar/try.sh | 30 ++++++++++++++++++++++++++++++ thanks-for-help.md | 2 ++ 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100755 1989/fubar/try.sh diff --git a/1989/fubar/Makefile b/1989/fubar/Makefile index cd1421ae7..c372d36d6 100644 --- a/1989/fubar/Makefile +++ b/1989/fubar/Makefile @@ -38,7 +38,8 @@ include ../../var.mk # Common C compiler warnings to silence # -CSILENCE= -Wno-implicit-function-declaration -Wno-incompatible-library-redeclaration -Wno-implicit-int +CSILENCE= -Wno-implicit-function-declaration -Wno-incompatible-library-redeclaration -Wno-implicit-int \ + -Wno-deprecated-non-prototype # Common C compiler warning flags # diff --git a/1989/fubar/README.md b/1989/fubar/README.md index 57133ad06..3488ee573 100644 --- a/1989/fubar/README.md +++ b/1989/fubar/README.md @@ -26,14 +26,17 @@ For more detailed information see [1989 fubar in bugs.md](/bugs.md#1989-fubar). ### Try: ```sh -./fubar 2 +./try.sh # run on 1 - 7 + +./fubar.sh 2 # run via script +./fubar 2 # run directly ``` ## Judges' remarks: Run this with a single digit argument (or wait a long time and risk an infinite -loop as described above). +loop as described in the [bugs.md](/bugs.md#1989-fubar) file). The blank line at the beginning of the source is mandatory. Do you know why? diff --git a/1989/fubar/try.sh b/1989/fubar/try.sh new file mode 100755 index 000000000..86445b6ac --- /dev/null +++ b/1989/fubar/try.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 1989/fubar +# + +# 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 + +fubar() +{ + if [[ "$#" -ne 1 ]]; then + echo "$0: expected 1 arg, got: $#" 1>&2 + else + read -r -n 1 -p "Press any key to run: ./fubar.sh $1: " + echo 1>&2 + ./fubar.sh "$1" + fi + +} + +for i in $(seq 1 7); do fubar "$i" ; done diff --git a/thanks-for-help.md b/thanks-for-help.md index 9d6a7058b..76169a5bd 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -761,6 +761,8 @@ not strictly necessary but nonetheless more correct, even if not warned against. Cody also 'modernised' the script to use `bash` and fixed for ShellCheck. The `if [ .. ]` was changed in the C code as well as the script. +Cody also added the [try.sh](/1989/fubar/try.sh) script. + ## [1989/jar.1](/1989/jar.1/jar.1.c) ([README.md](/1989/jar.1/README.md]))