Improve fixes to 1998/schnitzi

The author stated that there was no 'if's and I have made it that way
now.

The author stated that the number should be > 0 && < 27 so I added the
range check (was previously != 0). Too high value could segfault and < 0
was problematic too. 27 itself was code that could not compile. Since
the program is so beautiful it had been decided to fix the problems
which is why these changes were added too.

The above was done like:

    ((V[1]&&((atoi(V[1])>0&&atoi(V[1])<27)||(exit(1),1))));

The try.sh script has been added to the entry to try out a lot of
commands instead of copy pasting it from the judges' remarks.

Removed duplicate INABIAF information from README.md (which is why the
other updates).

Updated bugs.md with more information to the features like how output
can end up being gigabytes in length depending on the number specified
to the program. Removed from the bugs.md details about warnings to
ignore as the compiler -Wno- options take care of that now. Extra
parentheses were added to the above to prevent another warning (I was
not sure if all compilers and versions had the -Wno- so I decided to fix
it in the code itself).

The try section has a question to ponder as well. The detail is also in
the bugs.md file.
This commit is contained in:
Cody Boone Ferguson committed 2023-11-02 09:53:57 -07:00
1 parent 723df90fa3
commit 459fff8859
6 files changed
+120 -48

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
#!/usr/bin/env bash
make all || exit 1
echo "$ ./schnitzi 3 > sort.c" 1>&2
./schnitzi 3 > sort.c
echo "Compiling sort.c:" 1>&2
make sort >/dev/null || exit 1
echo "...built sort." 1>&2
echo "Creating data:" 1>&2
echo "$ echo 234 > data" 1>&2
echo 234 > data
echo "$ echo 413 >> data" 1>&2
echo 413 >> data
echo "$ echo 123 >> data" 1>&2
echo 123 >> data
echo "Sorting data:" 1>&2
echo "$ ./sort < data" 1>&2
./sort < data
echo 1>&2
echo "Using stdin/stdout:" 1>&2
echo "$ echo 10 7 9 | ./sort" 1>&2
echo "10 7 9" | ./sort
echo "$ ./schnitzi 5 > sort.c" 1>&2
./schnitzi 5 > sort.c
echo "Compiling sort.c:" 1>&2
make sort >/dev/null || exit 1
echo "...built sort." 1>&2
echo "Creating data:" 1>&2
echo "$ echo 124 > data" 1>&2
echo 124 > data
echo "$ echo 422 >> data" 1>&2
echo 422 >> data
echo "$ echo 120 >> data" 1>&2
echo 120 >> data
echo "$ echo 100 >> data" 1>&2
echo 100 >> data
echo "$ echo 777 >> data" 1>&2
echo 777 >> data
echo "Sorting data:" 1>&2
echo "$ ./sort < data" 1>&2
./sort < data
echo 1>&2
echo "Using stdin/stdout:" 1>&2
echo "$ echo 5 10 7 9 1 | ./sort" 1>&2
echo "5 10 7 9 1" | ./sort