Merge pull request #1036 from xexyl/faq-gets-fgets-change
This commit is contained in:
1 file changed
+17
-9
@@ -95,16 +95,23 @@ because of alarming warnings that can be displayed, in some systems at runtime
|
||||
interspersed with the output of the program.
|
||||
|
||||
For instance in macOS the entry [1990/tbr](1990/tbr/README.md) would output the
|
||||
warning in such a way that caused confusing output for the entry.
|
||||
warning in such a way that caused confusing output for the entry, looking like:
|
||||
|
||||
In some cases this is not so easy to fix and in one case at least there is an
|
||||
alternate version that has the fix instead due to a problem it creates (correct
|
||||
output but segfaults after the output in one of the forms of input).
|
||||
```sh
|
||||
$ ./tbr
|
||||
$ warning: this program uses gets(), which is unsafe.
|
||||
# nothing here, what to do?
|
||||
```
|
||||
|
||||
In some cases it is not possible to fix or at least highly unlikely and so those
|
||||
have mainly not been touched except one that has had the buffer size increased
|
||||
(which could be done for others that are not possible to change to `fgets()` but
|
||||
this has not been done).
|
||||
In some cases changing the code to use `fgets()` is not so easy to fix and in
|
||||
one case at least there is an alternate version that has the fix instead due to
|
||||
a problem it creates (correct output but segfaults after the output in one of
|
||||
the forms of input).
|
||||
|
||||
In some cases it is not possible to fix or at least it is highly unlikely and so
|
||||
those have mainly not been touched except one that has had the buffer size
|
||||
increased (which could be done for others that are not possible to change to
|
||||
`fgets()` though this has not been done).
|
||||
|
||||
Some entries can be made to look almost identical to the original entry. For
|
||||
instance the fix to [1988/reddy](1988/reddy/README.md) required only a single
|
||||
@@ -115,7 +122,8 @@ these problems.
|
||||
|
||||
NOTE: due to 'compatibility reasons' `fgets()` stores the newline and `gets()`
|
||||
does not. We're not sure how this is compatibility but either way it can cause a
|
||||
problem and it is this that has complicated some fixes.
|
||||
problem and it is this that has complicated most of the fixes though again some
|
||||
can look almost identical.
|
||||
|
||||
|
||||
## Q: I cannot get entry XYZZY from year 19xx to compile!
|
||||
|
||||
Reference in new issue
Block a user