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>.