Fix assumption that EOF==-1 in 2015/schweikhardt

The author stated EOF must be -1 but this is, as the author even noted,
not guaranteed by the standard (it just has to be a value < 0).

But rather than add C pre-processor directives to force EOF to be -1
(preferred over changing EOF to -1 in the code) the Makefile does (after
${CFLAGS}) -UEOF -DEOF=-1 so as to not have to modify the code any.

A few fixes in the README.md file.

This should complete this entry, leaving just (I think) 2015/endoh1.
This commit is contained in:
Cody Boone Ferguson committed 2023-12-10 05:25:02 -08:00
1 parent 0335c04e15
commit 3a1c9da50a
3 files changed
+15 -3

No files matched your search

+1 -1
View File
@@ -129,7 +129,7 @@ all: data ${TARGET}
sandwich supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
${CC} ${CFLAGS} -UEOF -DEOF=-1 $< -o $@ ${LDFLAGS}
# alternative executable
#
+8 -1
View File
@@ -24,6 +24,9 @@ For more detailed information see [2015 schweikhardt in bugs.md](/bugs.md#2015-s
where n is a base 16 number of any size.
NOTE: although it's supposed to be a base 16 number nothing will stop you from
doing something else. The author explains this in more details.
### Try:
@@ -31,6 +34,10 @@ where n is a base 16 number of any size.
./try.sh
```
After running it once to see what commands are run, you might wish to run it a
second time and just hold down space to see a fun scroll of numbers especially
where zeroes move to the right.
## Judges' remarks:
@@ -445,7 +452,7 @@ In a certain way, the program is character set and encoding agnostic.
* The `EOF` macro from `<stdio.h>` must expand to `-1` since it is used
to decrement a pointer and do some other math.
None of the tools catches this one. The program self-protects against unusual
None of the tools catch this one. The program self-protects against unusual
systems with `#if EOF + __STDC__` followed by `#error goofy!`. In the rare event
your system is goofy, replace all `EOF` tokens with `(-1)` and remove the
`#error` directive.
+6 -1
View File
@@ -3919,7 +3919,12 @@ past).
## <a name="2015_schweikhardt"></a>[2015/endoh3](/2015/schweikhardt/prog.c) ([README.md](/2015/schweikhardt/README.md]))
[Cody](#cody) added the [try.sh](2015/schweikhardt/try.sh) script.
[Cody](#cody) fixed the build so that `EOF` will be `-1` as the program assumes
this. It was decided by Cody to do `-UEOF -DEOF=-1` so as to not have to modify
the code any with C preprocessor directives (the preferred way) or changing
`EOF` to `-1`.
Cody also added the [try.sh](2015/schweikhardt/try.sh) script.
## <a name="2015_yang"></a>[2015/yang](/2015/yang/prog.c) ([README.md](/2015/yang/README.md]))