This makes the main source code look a little cleaner, at the expense of
background magic happening in the configure-generated config.h. But this
magic was already happening for _GNU_SOURCE, __EXTENSIONS__ and the like.
The only wrinkle is that newer versions of NcursesW cause ./configure to
include "-D_XOPEN_SOURCE=600" as part of the compilation command line--on
systems that support _XOPEN_SOURCE=700. The AC_DEFINE/AC_DEFINE_UNQUOTED
macros automatically comment out any "#undef" lines in config.h, so the
file lib/xopen_source.h works around this limitation. It is
automatically included by config.h.
Previous versions of the GNU Portability Library, and versions of the GNU
C Library as released with various Linux distributions, used strings no
longer present in the current version of the GNU Portability Library.
When used on systems with those strings, Star Traders could not provide
appropriate translations. This patch fixes that problem.
In particular, the various printf-posix modules are not needed as %ls and
the ' flag (thousands separator) is supported on all modern platforms (it
is needed on Cygwin 1.5.x, for example, but the 1.5.x series do not
support swprintf() anyway). Similarly, OpenBSD 3.8 (released November
2005) is not supported: it does not have <monetary.h>. A number of
modules (locale, string, unistd, wchar) are only required for NetBSD 5.0
(c. 2009: quite recent). We try to support MacOS X 10.5 (October 2007),
but it may require GNU libiconv.
Add a signal handler for SIGINT and SIGTERM, as well as sprinklings of
checks to abort_game. Although Ncurses DOES define handlers for SIGINT
and SIGTERM, they do not always seem to work correctly under many
operating systems.
In particular, the gnulib-tool utility now maintains lib/Makefile.am, as
well as many files in the m4 and lib directories. The file
m4/gnulib-cache.m4 allows the Gnulib files to be refreshed. See
http://www.gnu.org/software/gnulib/.