Remove 1986/hague alt code, make main entry
I fixed it so that the form where it would segfault (after printing the correct output) no longer occurs. The thanks file has had a note added towards the top about changing to fgets(), noting that although more is mentioned in the FAQ, it can be a real problem with some systems. The best example of it being beneficial is 1990/tbr. Naturally I also updated the thanks file for 1986/hague too, updating the details.
This commit is contained in:
1 parent
dc57ef5c78
commit
baec52c901
5 files changed
+21
-38
No files matched your search
+3
-5
@@ -63,7 +63,7 @@ CDEFINE=
|
||||
|
||||
# Include files that are needed to compile
|
||||
#
|
||||
CINCLUDE= -include stdio.h -include unistd.h
|
||||
CINCLUDE= -include stdio.h -include unistd.h -include string.h
|
||||
|
||||
# Optimization
|
||||
#
|
||||
@@ -114,8 +114,8 @@ OBJ= ${PROG}.o
|
||||
DATA=
|
||||
TARGET= ${PROG}
|
||||
#
|
||||
ALT_OBJ= ${PROG}.alt.o
|
||||
ALT_TARGET= ${PROG}.alt
|
||||
ALT_OBJ=
|
||||
ALT_TARGET=
|
||||
|
||||
|
||||
#################
|
||||
@@ -131,8 +131,6 @@ all: data ${TARGET}
|
||||
sandwich supernova deep_magic magic charon pluto
|
||||
|
||||
${PROG}: ${PROG}.c
|
||||
@echo "NOTE: this entry uses gets() so you might get a warning about this"
|
||||
@echo " when compiling and running this program with some systems."
|
||||
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
|
||||
|
||||
# alternative executable
|
||||
|
||||
@@ -9,10 +9,6 @@ UK
|
||||
make all
|
||||
```
|
||||
|
||||
There is an alternate version which uses `fgets()`. See the Alternate code
|
||||
section below as well as the [bugs.md](/bugs.md) file for more details as to why
|
||||
it is worth having as an alternate version.
|
||||
|
||||
## To use:
|
||||
|
||||
```sh
|
||||
@@ -35,24 +31,6 @@ Also try:
|
||||
echo IOCCC | ./hague 2>/dev/null
|
||||
```
|
||||
|
||||
## Alternate code:
|
||||
|
||||
Whereas with some entries the change to `fgets()` (see the [FAQ](/faq.md) for
|
||||
details on why this has been done) can be done in the original code this entry
|
||||
is more complicated in that although both forms of input show the correct
|
||||
output, one form segfaults after the output.
|
||||
|
||||
If you wish to use this alternate code, do:
|
||||
|
||||
```sh
|
||||
make alt
|
||||
```
|
||||
|
||||
Use `hague.alt` as you would `hague` above. As for which form will segfault
|
||||
after outputting the text it is when text is piped into the program. Again see
|
||||
the [bugs.md](/bugs.md) file for more details.
|
||||
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ DITDAH _DIT,DITDAH DAH_,DITDAH DIT_,
|
||||
DITDAH _DIT_,DITDAH DIT_DAH DIT
|
||||
DAH,DITDAH DAH_DIT DIT DAH;DAHDIT
|
||||
DIT _DIT=DIT_DAH DIT 81 DAH,DIT_=_DIT
|
||||
__DAH;_DIT=DAH_DIT DIT _DIT,81,stdin DAH,_DIT[strlen(_DIT)-1]='\0',_DIT!=NULL;__DIT
|
||||
__DAH;_DIT==DAH_DIT DIT _DIT,81,stdin DAH&&(_DIT[strlen(_DIT)-1]='\0',_DIT);__DIT
|
||||
DIT'\n'DAH DAH DAHDIT DIT DAH_=_DIT;DITDAH
|
||||
DAH_;__DIT DIT DITDAH
|
||||
_DIT_?_DAH DIT DITDAH DIT_ DAH:'?'DAH,__DIT
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@
|
||||
#define DITDAH *
|
||||
#define DAHDIT for
|
||||
#define DIT_DAH malloc
|
||||
#define DAH_DIT gets
|
||||
#define DAH_DIT fgets
|
||||
#define _DAHDIT char
|
||||
_DAHDIT _DAH_[]="ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c8a90l?e'b.s;i,d:"
|
||||
;main DIT DAH{_DAHDIT
|
||||
@@ -12,7 +12,7 @@ DITDAH _DIT,DITDAH DAH_,DITDAH DIT_,
|
||||
DITDAH _DIT_,DITDAH DIT_DAH DIT
|
||||
DAH,DITDAH DAH_DIT DIT DAH;DAHDIT
|
||||
DIT _DIT=DIT_DAH DIT 81 DAH,DIT_=_DIT
|
||||
__DAH;_DIT==DAH_DIT DIT _DIT DAH;__DIT
|
||||
__DAH;_DIT==DAH_DIT DIT _DIT,81,stdin DAH&&(_DIT[strlen(_DIT)-1]='\0',_DIT);__DIT
|
||||
DIT'\n'DAH DAH DAHDIT DIT DAH_=_DIT;DITDAH
|
||||
DAH_;__DIT DIT DITDAH
|
||||
_DIT_?_DAH DIT DITDAH DIT_ DAH:'?'DAH,__DIT
|
||||
|
||||
+15
-8
@@ -100,6 +100,18 @@ be made consistent but adding markdown where necessary in the remarks is).
|
||||
A lot of these fixes were done with his [sgit
|
||||
tool](https://github.com/xexyl/sgit) but many were done manually as well.
|
||||
|
||||
## A note about changes `fgets()`
|
||||
|
||||
Although this is discussed in the [FAQ](/faq.md) we want to say here simply that
|
||||
the problem with `gets()` is that in some systems a warning can be interspersed
|
||||
with the output which can be confusing, to say nothing of the annoyance of it. A
|
||||
good example was [1990/tbr](/thanks-for-fixes.md#1990tbr-readmemd) where one
|
||||
would see:
|
||||
|
||||
|
||||
```sh
|
||||
$ warning: this program uses gets(), which is unsafe.
|
||||
```
|
||||
|
||||
## [1984/anonymous](1984/anonymous/anonymous.c) ([README.md](1984/anonymous/README.md))
|
||||
|
||||
@@ -292,14 +304,9 @@ commented out.
|
||||
|
||||
## [1986/hague](1986/hague/hague.c) ([README.md](1986/hague/README.md]))
|
||||
|
||||
Cody added alt code that uses `fgets()` to avoid alarming and annoying warnings
|
||||
about `gets()` being unsafe. The reason this is alt code, at least for now, is
|
||||
that although it will print the results in both forms of invocation, after the
|
||||
output in one invocation form it will segfault. This might be addressed later on
|
||||
or it might be decided that it is worth it, with a caveat in the Makefile or at
|
||||
least the README.md file, since it still prints out the correct output, though
|
||||
that seems like it might not be so ideal unless it can be fixed (which might be
|
||||
done). See the [bugs.md](/bugs.md) file for details.
|
||||
Cody made this use `fgets()` to avoid alarming and annoying messages about
|
||||
`gets()` being unsafe, sometimes interspersed with the output of the program.
|
||||
For more details about that see the [FAQ](/faq.md).
|
||||
|
||||
## [1986/holloway](1986/holloway/holloway.c) ([README.md](1986/holloway/README.md]))
|
||||
|
||||
|
||||
Reference in new issue
Block a user