John Zaitseff
0ec87f8b34
Multibyte locales require a wide-character version of Curses
2011-08-28 14:40:39 +10:00
John Zaitseff
3b8aaf193e
Don't suggest /tmp for building: it may not be large enough
2011-08-28 14:11:29 +10:00
John Zaitseff
3a68213e80
Remove all unnecessary Gnulib modules
...
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.
2011-08-26 06:33:40 +10:00
John Zaitseff
dffb4c59fe
Implement the single-byte equivalent of getwch()
...
This implementation assembles a wide character from a stream of
multibyte-forming bytes.
2011-08-26 04:51:44 +10:00
John Zaitseff
4c99f9a57f
More (slight) code clean-ups
2011-08-26 03:22:25 +10:00
John Zaitseff
cb67513bb9
Correct a minor bug in cursor decrement (cpos_dec)
2011-08-25 22:15:12 +10:00
John Zaitseff
dfab785ba7
Add a couple more places where the character constant is a wide char
2011-08-25 21:55:10 +10:00
John Zaitseff
167bcd82f5
Remove the unused header file <ctype.h>
2011-08-25 21:45:22 +10:00
John Zaitseff
1c2518a78b
Minor clean-up: replace character constants with wide-char versions
...
Wide-char character constants is not strictly needed for most (all?)
modern C compilers, as ASCII maps to wchar_t directly (as long as
__STDC_ISO_10646__ is defined). However, it doesn't hurt to be pedantic!
2011-08-25 21:34:41 +10:00
John Zaitseff
61411e3416
Rearrange the order of constants, type declarations and macros
2011-08-25 14:49:51 +10:00
John Zaitseff
10815a2803
Move some global variables to intf.c and intf.h
...
Move the keycode_company, printable_map_val, chtype_map_val,
keycode_game_move, printable_game_move and chtype_game_move global
variables to intf.c and intf.h.
2011-08-25 14:48:31 +10:00
John Zaitseff
4733e98e7f
Change program_name() to be a global variable
...
We're using global variables all over the place, in any case...
2011-08-25 14:26:25 +10:00
John Zaitseff
485a867b99
Remove superfluous #include directives
2011-08-25 14:09:48 +10:00
John Zaitseff
20473ae409
Use wide-character functions for input routines and most strings
...
Convert all input routines, and most internal strings, to use
wide-character functions. All extended characters are supported,
including those having column widths of zero (eg, combining characters),
one (eg, normal Western characters) and two (eg, many East Asian
characters). This was quite a major undertaking!
2011-08-25 13:19:31 +10:00
John Zaitseff
b951b21894
Add global (wide-character) currency and numeric variables
...
Add the variables decimal_point, thousands_sep, currency_symbol,
mon_decimal_point and mon_thousands_sep, with code to initialise them.
2011-08-25 12:26:15 +10:00
John Zaitseff
3a4b014e64
Add the module wcswidth from the GNU Portability Library
2011-08-22 13:42:29 +10:00
John Zaitseff
07e9d30a66
Add the module wctob from the GNU Portability Library
2011-08-22 09:34:07 +10:00
John Zaitseff
150bcf10c2
Try loading UTF-8 strings with transliteration, if at all possible
...
Also fix a bug in save_game(): the iconv_open() parameters were the wrong
way around!
2011-08-20 16:27:11 +10:00
John Zaitseff
cf944c58f6
Minor fix: we don't use mbrtowc() in our program
2011-08-20 15:49:19 +10:00
John Zaitseff
a4cc805a65
Use wchar_t in answer_yesno()
...
Calls to wgetch(win) do not use wchar_t for the moment.
2011-08-20 15:38:26 +10:00
John Zaitseff
4b8d2529a8
Replace '0' with L'0', just in case
2011-08-20 15:27:22 +10:00
John Zaitseff
0a8e05f4d4
Rearrange the order of the internal mkchstr_XXX functions
2011-08-20 15:24:27 +10:00
John Zaitseff
b5b211313e
Move chstrdup() to utils.c and rename it to xchstrdup()
...
The new name is for consistency with other XXXdup() functions used in
this program.
2011-08-20 15:17:09 +10:00
John Zaitseff
bc8dc76f00
Minor white-space formatting change: indent by 8 characters, not 7
2011-08-20 13:34:28 +10:00
John Zaitseff
c90265ec28
Replace "---" with "--": it looks better in text mode
2011-08-20 13:30:31 +10:00
John Zaitseff
4d145813ff
Make the show_help() function multibyte-aware
...
All text in the show_help() function is now processed as wide characters.
2011-08-20 13:27:26 +10:00
John Zaitseff
7b544bbd35
Add the functions xwcrtomb() and xmbstowcs()
...
The xwcrtomb() and xmbstowcs() functions replace illegal characters with
EILSEQ_REPL ('?'). Adjust other functions, particularly mkchstr() and
friends, to suit.
2011-08-20 13:03:40 +10:00
John Zaitseff
336611559b
Add the error-checking function xwcsdup()
2011-08-20 10:40:07 +10:00
John Zaitseff
02fd017807
Make the errno_exit() string a little more regular
...
This is to match all other such strings in the program.
2011-08-19 17:34:41 +10:00
John Zaitseff
a49c50b4fd
Allow mkchstr_conv error strings to be localised
2011-08-19 17:24:28 +10:00
John Zaitseff
6fb62460ca
Add some asserts to newtxwin(), just to be on the safe side
2011-08-19 17:20:41 +10:00
John Zaitseff
aeaf08a8a4
Possible bug fix: test for "C" locale when return string is opaque
...
On some systems the return string from setlocale() may be opaque, so we
need to explicitly set the locale to "C", then test the return value from
that.
2011-08-19 17:14:00 +10:00
John Zaitseff
8a7dfcaf99
Handle multibyte characters correctly in mkchstr()
...
Internal processing is now done in terms of wide characters (type
wchar_t).
2011-08-19 16:52:27 +10:00
John Zaitseff
74031a0415
Add yet another module from the GNU Portability Library: btowc
2011-08-19 14:26:30 +10:00
John Zaitseff
03e33a6465
Update the list of (auto-generated) files to ignore
2011-08-19 13:31:07 +10:00
John Zaitseff
75b5c986c0
Add the module wcwidth from the GNU Portability Library
2011-08-19 13:22:16 +10:00
John Zaitseff
87f09a6fda
Add the Gnulib modules mbrtowc, mbsrtowcs, wcrtomb and wcsrtombs
2011-08-19 13:11:43 +10:00
John Zaitseff
3a6f33d2a1
Update some minor comments about character encodings
2011-08-18 15:05:55 +10:00
John Zaitseff
4d6f1478e6
Remove the superfluous argument to chstrdup()
...
This argument is not required: we KNOW that we have initialised chtype
arrays with an ending NUL!
2011-08-18 14:53:03 +10:00
John Zaitseff
bee30b7343
Ignore additional files in the po subdirectory
...
Yes, trader.pot should be ignored: it is autogenerated from the source
code.
2011-08-18 12:56:21 +10:00
John Zaitseff
ef3e06ed36
Add the wchar and wctype-h modules from the GNU Portability Library
2011-08-18 12:53:23 +10:00
John Zaitseff
6ef7c7b6da
Allow localisation of company letters and map moves (choices)
2011-08-18 12:10:33 +10:00
John Zaitseff
a024ad83e7
Update help text company letter; clarify tilde escapes in general
2011-08-18 09:10:38 +10:00
John Zaitseff
e87c6ce9b3
Allow input keycodes in ask_number_players() to be localised
2011-08-17 22:27:51 +10:00
John Zaitseff
75503ab103
Parameterise answer_yesno() so that the input keycodes can be localised
2011-08-17 22:07:31 +10:00
John Zaitseff
1c4cac2ba1
Add a detailed explanation of the help text markup format
2011-08-17 21:41:38 +10:00
John Zaitseff
c2a3c5ac8f
Require Gettext 0.18.1; regularise usage of Ncurses; update version
2011-08-17 19:48:39 +10:00
John Zaitseff
b674c05d56
Add many comments for translators; use pgettext() where appropriate
2011-08-17 19:13:05 +10:00
John Zaitseff
25d586f775
Add some translator comments regarding company names and ordinals
2011-08-17 13:26:55 +10:00
John Zaitseff
5f5c512e45
Highlight the word "one"
2011-08-17 13:26:11 +10:00