The most visible change is that the scrolling buffer of messages now
actually scrolls and keeps history, and you type on the bottom line only.
For now you can page through the history with ^P/^N; that's not ideal but
one can't fix everything all at once.
Use resizeable array code (roughly the same that I floated a while ago
in connection with make) to hold the scroll.
a.) Don't include a zillion system headers from "extern.h" (actually, don't
include any).
b.) Break a global jmp_buf variable into a new file, so <setjmp.h> doesn't
have to be pulled in everywhere (it's only used in two places).
The (one line) new file is (c) TNF with a three-clause license, FW(L)IW.
integer arguments and with string arguments (cast to long, and in one
place to int). The patch here cleans this up, making it into two
separate functions; this allows for the game to be made const-correct
in future and improves portability.
The patch also contains two other fragments: a change to use the
symbolic constant SEEK_END with fseek(), and a change to use snprintf
in one place to avoid a buffer overrun.
Via PR 6569 by Joseph Myers <jsm28@cam.ac.uk>.