1
0
mirror of https://git.zap.org.au/git/trader.git synced 2024-12-04 14:46:45 -05:00
Commit Graph

865 Commits

Author SHA1 Message Date
John Zaitseff
7647561a92 Use the more common post-increment form 2018-08-24 13:21:20 +10:00
John Zaitseff
daab2e94da Convert xstrfmon() into a wide-character version xwcsfmon()
Also work around buggy implementations of strfmon() that do not copy
complete multibyte sequences that may be part of a locale's
mon_thousands_sep, thousands_sep, mon_decimal_point or decimal_point.
2018-08-24 13:20:51 +10:00
John Zaitseff
6ec3beab75 Minor aesthetic cleanup 2018-08-24 10:46:13 +10:00
John Zaitseff
74218edb89 Bug fix: preincrement index when storing EILSEQ_REPL 2018-08-24 10:45:31 +10:00
John Zaitseff
8f9072ecfb Rename heading from "Supported Systems" to "Tested Systems" 2018-08-23 11:57:42 +10:00
John Zaitseff
0df2830c85 Move tables of supported operating systems / compilers from NEWS to INSTALL 2018-08-23 11:55:03 +10:00
John Zaitseff
5c8e1c44d3 Correct text justification to be 74 columns 2018-08-23 11:22:11 +10:00
John Zaitseff
3733875c29 Reformat the table of tested operating systems / compilers 2018-08-22 09:25:35 +10:00
John Zaitseff
539ac4bcae Update line numbers in all PO files 2018-08-21 22:18:09 +10:00
John Zaitseff
242aa2ea95 Remove the now-unused 'strstr' Gnulib module 2018-08-21 22:11:16 +10:00
John Zaitseff
1e0285f6c0 Rename l_strfmon() and rewrite as xstrfmon() to handle POSIX locale better
Current and previous versions of ISO/IEC 9945-1 (POSIX), particularly SUSv3
(2001) and SUSv4 (2008), require strfmon() to return rather meaningless
strings when used with the POSIX "C" locale.  In particular, the standard
POSIX locale does not define a currency symbol, a monetary radix symbol
(decimal point) or a negative sign.  This means strfmon(..., "%n", -123.45)
is supposed to produce "12345" instead of something like "$-123.45"!

The new xstrfmon() overcomes these limitations by using snprintf() as
appropriate.
2018-08-21 21:55:21 +10:00
John Zaitseff
827db8a537 Correct the sentence from plural to singular form 2018-08-10 20:34:16 +10:00
John Zaitseff
d1239aab57 Correct locations of files to include ".." where needed 2018-08-10 20:33:39 +10:00
John Zaitseff
117400e7df Use a hyphen instead of underscore for xopen-source.m4 and xopen-source.h 2018-08-10 20:30:06 +10:00
John Zaitseff
391fb1cec8 Update line numbers in all PO files 2018-08-09 19:00:09 +10:00
John Zaitseff
89be55c7c9 Use __attribute__((unused)) to silence GCC with the -Wextra flag 2018-08-09 18:42:10 +10:00
John Zaitseff
80c1301e1a Bug fix: Allow compilations using separate build directories to succeed 2018-08-09 18:11:28 +10:00
John Zaitseff
2032f6de8a Move redefinition of _XOPEN_SOURCE into its own Autoconf macro and header
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.
2018-08-09 18:05:39 +10:00
John Zaitseff
e578802ac6 Use the Gnulib extensions module to define _GNU_SOURCE and __EXTENSIONS__ 2018-08-09 14:11:38 +10:00
John Zaitseff
d35abf787a Remove any mention of Minix from NEWS
The Minix C library does not seem to support Unicode well (for example,
wcwidth() returns -1 for UTF-8 byte sequences), the native curses library
is quite buggy, playing around with the Gnulib wcwidth module did not fix
issues with Unicode--it's all in the "too hard" basket!
2018-08-09 11:23:22 +10:00
John Zaitseff
1b0387441f Report the command line necessary to compile under Minix 3.4.0rc6
Note that although Star Traders compiles and installs successfully,
running the binary with a locale set to use non-ASCII strings currently
fails with "mkchstr: 'STRING': Illegal byte sequence" ("STRING" being the
translated string).
2018-08-09 10:41:35 +10:00
John Zaitseff
1f734e960b Replace spaces with tabs and vice versa
For Star Traders, all text files use spaces only (no tabs); for C source
code files, tabs are used, except in comments, where spaces only are used.
2018-08-08 14:55:58 +10:00
John Zaitseff
097c9b0e5b Avoid a Clang warning about a comparison that is always false
Rewrite a check that unscramble_table[] is of the right size as an
assertion, which prevents Clang from issuing a warning that the "result
of comparison of constant 256 with expression of type 'const unsigned
char' is always false".

Oh for the day that C11's _Static_assert can be used amongst all
compilers!  But perhaps Gnulib's assert-h module can be used instead...
2018-08-08 13:50:15 +10:00
John Zaitseff
0a1e837c4d Add the Gnulib monetary module to check for the existence of <monetary.h> 2018-08-08 09:57:25 +10:00
John Zaitseff
0e656681bc Correct spelling or grammatical mistakes in various comments 2018-08-06 22:09:20 +10:00
John Zaitseff
3701ba13fb Document the operating system and compiler combinations tested in NEWS 2018-08-06 20:52:26 +10:00
John Zaitseff
83878efce2 Update to the latest (unreleased) version of ax_cflags_warn_all.m4 2018-08-06 20:29:09 +10:00
John Zaitseff
9d9a3befca Update m4/README to include changes to the m4 files now included 2018-08-06 15:42:44 +10:00
John Zaitseff
a02c7388e2 Ensure m4/ax_prepend_flag.m4 is distributed
Also remove ax_append_flag.m4 from the distribution list, and order
everything alphabetically.
2018-08-06 15:25:56 +10:00
John Zaitseff
265ed12de8 Update to an unreleased version of ax_cflags_warn_all.m4
This version of the AX_CFLAGS_WARN_ALL macro uses a far more robust
method of detecting compilers to select appropriate warning flags.  It
also uses the AX_PREPEND_FLAG macro instead of AX_APPEND_FLAG.

This version of ax_cflags_warn_all.m4 (and ax_prepend_flag.m4) has been
submitted upstream; see https://savannah.gnu.org/patch/?9673 for details.
2018-08-06 15:21:05 +10:00
John Zaitseff
5caf1ef165 Keep the Intel C compiler quiet
By default, the Intel C compiler warns "enumerated type mixed with
another type" when compiling this code.  Explicit casts keep it quiet.
2018-08-06 13:59:25 +10:00
John Zaitseff
eb0ed43ce2 Bug fix: char may be unsigned on some platforms
The function wctob() returns an int that can be -1; a conversion to
unsigned char will make that value 0xFF.  Although the "if" statement
still works in this case, we should be more diligent in our programming.
2018-08-06 13:57:16 +10:00
John Zaitseff
61e6dec3a3 Tweak configuration summary to include the compiler used with flags 2018-08-06 12:37:32 +10:00
John Zaitseff
4f3a870b9d Update unreleased version of m4/ax_compiler_vendor.m4
This version of ax_compiler_vendor.m4 has been submitted upstream; see
https://savannah.gnu.org/patch/index.php?9671 for details.
2018-08-06 09:46:19 +10:00
John Zaitseff
cef694cab6 Add an unreleased version of m4/ax_compiler_vendor.m4 for compiler detection 2018-08-06 09:24:48 +10:00
John Zaitseff
1c3afc571b Minor whitespace cleanup in #define statements 2018-08-04 22:14:03 +10:00
John Zaitseff
192b749018 Use a better check for Solaris (SunOS 5.x)
The __sun__ macro is not always defined by Oracle Solaris Studio, but
__sun is, as it is in GCC and Clang.  By itself, __sun__ also matches the
very obsolete SunOS 4.x BSD-based operating system, hence the need for
__SVR4 as well.

See https://web.archive.org/web/20180221212835/http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system
for more information on operating system macro checks.
2018-08-04 18:03:33 +10:00
John Zaitseff
2d6a339fb1 Define _XOPEN_SOURCE correctly for Solaris systems 2018-08-04 16:48:29 +10:00
John Zaitseff
de6f113d12 Change parameters of apply_xor() from void * to char *
Arithmetic on void * pointers is undefined, according to Section 6.5.6
Paragraph 2, Section 6.2.5 Paragraph 1 and Section 6.2.5 Paragraph 19 of
the ISO/IEC 9899:1999 C99 standard: the void type is incomplete and thus
its size cannot be determined.

GCC allows pointer arithmetic on void * as an extension (and only warns
if "-Wpointer-arith" is given); the Oracle Developer Studio C compiler
issues a warning by default.
2018-08-04 14:31:45 +10:00
John Zaitseff
a47e8528dc Force redefinition of _XOPEN_SOURCE if required
Newer versions of libncurses/libncursesw "#define _XOPEN_SOURCE 600" in
their pkg-config file.  This change forces _XOPEN_SOURCE to be redefined
to 700 in that case.
2018-07-27 18:39:18 +10:00
John Zaitseff
f45986e88d Pedantically type-cast integer comparisons
The latest versions of the GNU Compiler Collection complain about signed
and unsigned integer comparisons when run with the "-Wextra" flag.  Keep
those compilers happy.
2018-07-27 18:33:14 +10:00
John Zaitseff
9e3f7c7713 Replace incorrect command line argument "--maxturn" with "--max-turn" 2018-07-27 06:55:14 +10:00
John Zaitseff
d009cd82a7 Update all PO files, adding translations for obsolete strings
Translations have been taken from previous versions of PO files or from
strings very similar to the added ones.
2018-07-27 06:46:15 +10:00
John Zaitseff
53c8d735c3 Remove duplicate obsolete strings 2018-07-27 06:25:37 +10:00
John Zaitseff
4946112c41 Add additional strings found in other versions of glibc's getopt.c 2018-07-27 06:15:11 +10:00
John Zaitseff
3bb98b24dc Update documentation to mention the obsolete strings 2018-07-27 06:02:54 +10:00
John Zaitseff
5a62a39770 Add strings from obsolete versions of libraries
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.
2018-07-27 05:52:25 +10:00
John Zaitseff
9ee01e98d9 Update ax_append_flag.m4 to latest version from the GNU Autoconf archive 2018-07-26 00:31:16 +10:00
John Zaitseff
8eb727453d Print a configuration summary at the end of configure 2018-07-25 15:10:08 +10:00
John Zaitseff
baf7cfed8e Warn about enhanced Curses only if NLS is enabled
If Native Language Support is disabled, the program does not use the GNU
Gettext library and thus all strings are in ASCII format: enhanced Curses
is not needed in such situations.
2018-07-25 15:04:59 +10:00