1
0
mirror of https://git.zap.org.au/git/trader.git synced 2024-10-27 18:20:13 -04:00

Merge branch with-autogenerated into with-debian

This commit is contained in:
John Zaitseff 2012-04-14 15:12:24 +10:00
commit be709e997c
51 changed files with 9573 additions and 1252 deletions

View File

@ -102,12 +102,12 @@ You can also run configure in a separate build-only directory tree. This
feature requires GNU Make and allows you to keep the source code tree from
being modified by the compilation process. To use this option, create a
separate build directory, then run configure. For example, if you placed
the Star Traders source code tree in $HOME/src/trader-7.3, you could run
the Star Traders source code tree in $HOME/src/trader-7.4, you could run
something like:
mkdir $HOME/build/trader-build-7.3
cd $HOME/build/trader-build-7.3
$HOME/src/trader-7.3/configure
mkdir $HOME/build/trader-build-7.4
cd $HOME/build/trader-build-7.4
$HOME/src/trader-7.4/configure
Once again, the Autoconf manual describes these options (and many others):

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# Makefile.in generated by automake 1.11.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -43,6 +43,23 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@ -123,6 +140,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@ -263,7 +285,6 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETS = @GNULIB_GETS@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@ -278,6 +299,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@ -749,6 +771,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
@ -807,6 +830,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
@ -1140,13 +1164,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \

26
NEWS
View File

@ -15,6 +15,32 @@ consult the Subversion repository for "trader" on The ZAP Group web server
at http://www.zap.org.au/services/svn/.
Version 7.4 (not yet released)
------------------------------
For the first time since the CP/M-80 version of Star Traders, the game
algorithms have been carefully reviewed and revised. In particular,
companies may now have negative returns, making players lose money on such
shares. This may encourage players to use the "Sell shares" option at
appropriate times... In addition, changes in share prices, returns and
bank interest rates have been made much "smoother", less prone to wild
variations. These new algorithms were first modelled using Gnuplot and
Perl before being implemented in C.
The "configure" script now prints a prominent warning if a wide-character
version of Curses, such as NcursesW, is not available when compiling the
game. It is a warning and not an error as single-byte locales (such as
US-ASCII and ISO8859-1) do not require NcursesW, even if the compilation
environment itself is a multibyte one (such as UTF-8).
The Russian translation has been updated, with thanks to Vladimir Tsarkov
and Pavel Maryanov. Translations for French, German, Finnish and Croatian
have been added (in that order), with thanks to Frédéric Marchal, Philipp
Thomas, Jorma Karvonen and Tomislav Krznar. Special thanks also to the
Translation Project, which brings free (open-source) software developers
and translators together.
Version 7.3 (16th March, 2012)
------------------------------

6
aclocal.m4 vendored
View File

@ -1,4 +1,4 @@
# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
# generated automatically by aclocal 1.11.4 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
@ -38,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.11.3], [],
m4_if([$1], [1.11.4], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@ -54,7 +54,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.11.3])dnl
[AM_AUTOMAKE_VERSION([1.11.4])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])

View File

@ -337,6 +337,9 @@
/* Define to 1 if getpagesize is declared even after undefining macros. */
#undef HAVE_RAW_DECL_GETPAGESIZE
/* Define to 1 if gets is declared even after undefining macros. */
#undef HAVE_RAW_DECL_GETS
/* Define to 1 if getsubopt is declared even after undefining macros. */
#undef HAVE_RAW_DECL_GETSUBOPT
@ -901,6 +904,9 @@
'wint_t'. */
#undef WINT_T_SUFFIX
/* Define to 1 on Solaris. */
#undef _LCONV_C99
/* Define to 1 if on MINIX. */
#undef _MINIX

90
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for Star Traders 7.3.
# Generated by GNU Autoconf 2.68 for Star Traders 7.4-pre2.
#
# Report bugs to <J.Zaitseff@zap.org.au>.
#
@ -560,8 +560,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Star Traders'
PACKAGE_TARNAME='trader'
PACKAGE_VERSION='7.3'
PACKAGE_STRING='Star Traders 7.3'
PACKAGE_VERSION='7.4-pre2'
PACKAGE_STRING='Star Traders 7.4-pre2'
PACKAGE_BUGREPORT='J.Zaitseff@zap.org.au'
PACKAGE_URL='http://www.zap.org.au/software/trader/'
@ -784,7 +784,6 @@ GNULIB_PERROR
GNULIB_PCLOSE
GNULIB_OBSTACK_PRINTF_POSIX
GNULIB_OBSTACK_PRINTF
GNULIB_GETS
GNULIB_GETLINE
GNULIB_GETDELIM
GNULIB_GETCHAR
@ -999,11 +998,14 @@ GL_GENERATE_STDDEF_H_TRUE
STDDEF_H
HAVE_WCHAR_T
REPLACE_NULL
REPLACE_STRUCT_LCONV
REPLACE_DUPLOCALE
REPLACE_SETLOCALE
REPLACE_LOCALECONV
HAVE_DUPLOCALE
GNULIB_DUPLOCALE
GNULIB_SETLOCALE
GNULIB_LOCALECONV
LOCALCHARSET_TESTS_ENVIRONMENT
GLIBC21
NEXT_AS_FIRST_DIRECTIVE_ICONV_H
@ -1923,7 +1925,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Star Traders 7.3 to adapt to many kinds of systems.
\`configure' configures Star Traders 7.4-pre2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1993,7 +1995,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Star Traders 7.3:";;
short | recursive ) echo "Configuration of Star Traders 7.4-pre2:";;
esac
cat <<\_ACEOF
@ -2096,7 +2098,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Star Traders configure 7.3
Star Traders configure 7.4-pre2
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@ -2743,7 +2745,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Star Traders $as_me 7.3, which was
It was created by Star Traders $as_me 7.4-pre2, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@ -3592,7 +3594,7 @@ fi
# Define the identity of the package.
PACKAGE='trader'
VERSION='7.3'
VERSION='7.4-pre2'
cat >>confdefs.h <<_ACEOF
@ -9994,11 +9996,14 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; }
GNULIB_LOCALECONV=0;
GNULIB_SETLOCALE=0;
GNULIB_DUPLOCALE=0;
HAVE_DUPLOCALE=1;
REPLACE_LOCALECONV=0;
REPLACE_SETLOCALE=0;
REPLACE_DUPLOCALE=0;
REPLACE_STRUCT_LCONV=0;
REPLACE_NULL=0;
@ -11919,7 +11924,6 @@ fi
GNULIB_GETCHAR=0;
GNULIB_GETDELIM=0;
GNULIB_GETLINE=0;
GNULIB_GETS=0;
GNULIB_OBSTACK_PRINTF=0;
GNULIB_OBSTACK_PRINTF_POSIX=0;
GNULIB_PCLOSE=0;
@ -13349,6 +13353,15 @@ LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_sourc
case "$host_os" in
solaris*)
$as_echo "#define _LCONV_C99 1" >>confdefs.h
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; }
if ${gl_cv_header_locale_h_posix2001+:} false; then :
@ -13358,6 +13371,7 @@ else
/* end confdefs.h. */
#include <locale.h>
int x = LC_MESSAGES;
int y = sizeof (((struct lconv *) 0)->decimal_point);
int
main ()
{
@ -13417,6 +13431,39 @@ $as_echo "$gl_cv_header_locale_has_locale_t" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5
$as_echo_n "checking whether struct lconv is properly defined... " >&6; }
if ${gl_cv_sys_struct_lconv_ok+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <locale.h>
struct lconv l;
int x = sizeof (l.decimal_point);
int y = sizeof (l.int_p_cs_precedes);
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
gl_cv_sys_struct_lconv_ok=yes
else
gl_cv_sys_struct_lconv_ok=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5
$as_echo "$gl_cv_sys_struct_lconv_ok" >&6; }
if test $gl_cv_sys_struct_lconv_ok = no; then
REPLACE_STRUCT_LCONV=1
fi
@ -15028,7 +15075,6 @@ $as_echo "$gl_cv_next_stdio_h" >&6; }
GNULIB_GETC=1
GNULIB_GETCHAR=1
GNULIB_FGETS=1
GNULIB_GETS=1
GNULIB_FREAD=1
@ -15046,7 +15092,7 @@ $as_echo "$gl_cv_next_stdio_h" >&6; }
for gl_func in dprintf fpurge fseeko ftello getdelim getline pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
@ -17749,6 +17795,22 @@ if test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes; then :
as_fn_error $? "requires an X/Open-compatible Curses library with colour" "$LINENO" 5
fi
if test "x$ax_cv_curses_enhanced" != xyes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no X/Open-compatible Enhanced Curses library found
***************** Locales with multibyte character sequences (such as
*** WARNING *** UTF-8) require a wide-character version of Curses,
***************** such as NcursesW, to work correctly.
" >&5
$as_echo "$as_me: WARNING: no X/Open-compatible Enhanced Curses library found
***************** Locales with multibyte character sequences (such as
*** WARNING *** UTF-8) require a wide-character version of Curses,
***************** such as NcursesW, to work correctly.
" >&2;}
fi
ac_config_files="$ac_config_files Makefile lib/Makefile src/Makefile doc/Makefile po/Makefile.in m4/Makefile"
@ -18360,7 +18422,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Star Traders $as_me 7.3, which was
This file was extended by Star Traders $as_me 7.4-pre2, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -18427,7 +18489,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Star Traders config.status 7.3
Star Traders config.status 7.4-pre2
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"

View File

@ -26,7 +26,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see http://www.gnu.org/licenses/.
AC_INIT([Star Traders], [7.3], [J.Zaitseff@zap.org.au], [trader], [http://www.zap.org.au/software/trader/])
AC_INIT([Star Traders], [7.4-pre2], [J.Zaitseff@zap.org.au], [trader], [http://www.zap.org.au/software/trader/])
AC_DEFINE([PACKAGE_AUTHOR], ["John Zaitseff"], [Package author])
AC_PREREQ([2.67])
@ -59,6 +59,14 @@ AX_WITH_CURSES
AS_IF([test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes], [
AC_MSG_ERROR([requires an X/Open-compatible Curses library with colour])
])
AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [
AC_MSG_WARN([no X/Open-compatible Enhanced Curses library found
***************** Locales with multibyte character sequences (such as
*** WARNING *** UTF-8) require a wide-character version of Curses,
***************** such as NcursesW, to work correctly.
])
])
AC_CONFIG_FILES([
Makefile

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# Makefile.in generated by automake 1.11.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -43,6 +43,23 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@ -110,6 +127,11 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@ -234,7 +256,6 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETS = @GNULIB_GETS@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@ -249,6 +270,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@ -720,6 +742,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
@ -778,6 +801,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
@ -916,9 +940,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-man6: $(dist_man6_MANS)
@$(NORMAL_INSTALL)
test -z "$(man6dir)" || $(MKDIR_P) "$(DESTDIR)$(man6dir)"
@list='$(dist_man6_MANS)'; test -n "$(man6dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
@list1='$(dist_man6_MANS)'; \
list2=''; \
test -n "$(man6dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
echo " $(MKDIR_P) '$(DESTDIR)$(man6dir)'"; \
$(MKDIR_P) "$(DESTDIR)$(man6dir)" || exit 1; \
{ for i in $$list1; do echo "$$i"; done; \
if test -n "$$list2"; then \
for i in $$list2; do echo "$$i"; done \
| sed -n '/\.6[a-z]*$$/p'; \
fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \

View File

@ -336,12 +336,15 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
-e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
-e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
-e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
-e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
@ -646,7 +649,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
-e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
-e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
-e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \
-e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
-e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
-e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# Makefile.in generated by automake 1.11.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -41,6 +41,23 @@
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@ -142,6 +159,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
HEADERS = $(noinst_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@ -269,7 +291,6 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETS = @GNULIB_GETS@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@ -284,6 +305,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@ -755,6 +777,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
@ -813,6 +836,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
@ -1298,13 +1322,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@ -1621,12 +1642,15 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
-e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
-e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
-e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
-e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
@ -1770,7 +1794,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
-e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
-e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
-e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \
-e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
-e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
-e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \

View File

@ -47,6 +47,111 @@
# define LC_MESSAGES 1729
#endif
/* Bionic libc's 'struct lconv' is just a dummy. */
#if @REPLACE_STRUCT_LCONV@
# define lconv rpl_lconv
struct lconv
{
/* All 'char *' are actually 'const char *'. */
/* Members that depend on the LC_NUMERIC category of the locale. See
<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04> */
/* Symbol used as decimal point. */
char *decimal_point;
/* Symbol used to separate groups of digits to the left of the decimal
point. */
char *thousands_sep;
/* Definition of the size of groups of digits to the left of the decimal
point. */
char *grouping;
/* Members that depend on the LC_MONETARY category of the locale. See
<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_03> */
/* Symbol used as decimal point. */
char *mon_decimal_point;
/* Symbol used to separate groups of digits to the left of the decimal
point. */
char *mon_thousands_sep;
/* Definition of the size of groups of digits to the left of the decimal
point. */
char *mon_grouping;
/* Sign used to indicate a value >= 0. */
char *positive_sign;
/* Sign used to indicate a value < 0. */
char *negative_sign;
/* For formatting local currency. */
/* Currency symbol (3 characters) followed by separator (1 character). */
char *currency_symbol;
/* Number of digits after the decimal point. */
char frac_digits;
/* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
comes after the number. */
char p_cs_precedes;
/* For values >= 0: Position of the sign. */
char p_sign_posn;
/* For values >= 0: Placement of spaces between currency symbol, sign, and
number. */
char p_sep_by_space;
/* For values < 0: 1 if the currency symbol precedes the number, 0 if it
comes after the number. */
char n_cs_precedes;
/* For values < 0: Position of the sign. */
char n_sign_posn;
/* For values < 0: Placement of spaces between currency symbol, sign, and
number. */
char n_sep_by_space;
/* For formatting international currency. */
/* Currency symbol (3 characters) followed by separator (1 character). */
char *int_curr_symbol;
/* Number of digits after the decimal point. */
char int_frac_digits;
/* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
comes after the number. */
char int_p_cs_precedes;
/* For values >= 0: Position of the sign. */
char int_p_sign_posn;
/* For values >= 0: Placement of spaces between currency symbol, sign, and
number. */
char int_p_sep_by_space;
/* For values < 0: 1 if the currency symbol precedes the number, 0 if it
comes after the number. */
char int_n_cs_precedes;
/* For values < 0: Position of the sign. */
char int_n_sign_posn;
/* For values < 0: Placement of spaces between currency symbol, sign, and
number. */
char int_n_sep_by_space;
};
#endif
#if @GNULIB_LOCALECONV@
# if @REPLACE_LOCALECONV@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef localeconv
# define localeconv rpl_localeconv
# endif
_GL_FUNCDECL_RPL (localeconv, struct lconv *, (void));
_GL_CXXALIAS_RPL (localeconv, struct lconv *, (void));
# else
_GL_CXXALIAS_SYS (localeconv, struct lconv *, (void));
# endif
_GL_CXXALIASWARN (localeconv);
#elif @REPLACE_STRUCT_LCONV@
# undef localeconv
# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv
#elif defined GNULIB_POSIXCHECK
# undef localeconv
# if HAVE_RAW_DECL_LOCALECONV
_GL_WARN_ON_USE (localeconv,
"localeconv returns too few information on some platforms - "
"use gnulib module localeconv for portability");
# endif
#endif
#if @GNULIB_SETLOCALE@
# if @REPLACE_SETLOCALE@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)

View File

@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
# endif
#endif
#if @GNULIB_GETS@
# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef gets
# define gets rpl_gets
# endif
_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (gets, char *, (char *s));
# else
_GL_CXXALIAS_SYS (gets, char *, (char *s));
# undef gets
# endif
_GL_CXXALIASWARN (gets);
/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
so any use of gets warrants an unconditional warning; besides, C11
removed it. */
#undef gets
#if HAVE_RAW_DECL_GETS
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
# endif
#endif
/* Some people would argue that sprintf should be handled like gets
(for example, OpenBSD issues a link warning for both functions),
since both can cause security holes due to buffer overruns.
/* Some people would argue that all sprintf uses should be warned about
(for example, OpenBSD issues a link warning for it),
since it can cause security holes due to buffer overruns.
However, we believe that sprintf can be used safely, and is more
efficient than snprintf in those safe cases; and as proof of our
belief, we use sprintf in several gnulib modules. So this header

View File

@ -94,6 +94,14 @@ struct random_data
# include <unistd.h>
#endif
/* The __attribute__ feature is available in gcc versions 2.5 and later.
The attribute __pure__ was added in gcc 2.96. */
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
#else
# define _GL_ATTRIBUTE_PURE /* empty */
#endif
/* The definition of _Noreturn is copied here. */
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
@ -138,7 +146,9 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
/* Parse a signed decimal integer.
Returns the value of the integer. Errors are not detected. */
# if !@HAVE_ATOLL@
_GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1)));
_GL_FUNCDECL_SYS (atoll, long long, (const char *string)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
# endif
_GL_CXXALIAS_SYS (atoll, long long, (const char *string));
_GL_CXXALIASWARN (atoll);

View File

@ -724,10 +724,14 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define mbslen rpl_mbslen
# endif
_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string));
# else
_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
# endif
_GL_CXXALIASWARN (mbslen);
@ -737,6 +741,7 @@ _GL_CXXALIASWARN (mbslen);
/* Return the number of multibyte characters in the character string starting
at STRING and ending at STRING + LEN. */
_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1));
#endif
@ -750,10 +755,12 @@ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
# define mbschr rpl_mbschr /* avoid collision with HP-UX function */
# endif
_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c));
# else
_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c));
# endif
@ -770,10 +777,12 @@ _GL_CXXALIASWARN (mbschr);
# define mbsrchr rpl_mbsrchr /* avoid collision with system function */
# endif
_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c));
# else
_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c));
# endif
@ -786,6 +795,7 @@ _GL_CXXALIASWARN (mbsrchr);
Unlike strstr(), this function works correctly in multibyte locales with
encodings different from UTF-8. */
_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -797,6 +807,7 @@ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
different lengths!
Unlike strcasecmp(), this function works correctly in multibyte locales. */
_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -811,6 +822,7 @@ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
Unlike strncasecmp(), this function works correctly in multibyte locales.
But beware that N is not a byte count but a character count! */
_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -824,6 +836,7 @@ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
Unlike strncasecmp(), this function works correctly in multibyte
locales. */
_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -834,6 +847,7 @@ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
strlen (haystack) < strlen (needle) !
Unlike strcasestr(), this function works correctly in multibyte locales. */
_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -844,6 +858,7 @@ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
if none exists.
Unlike strcspn(), this function works correctly in multibyte locales. */
_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -857,10 +872,12 @@ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
# endif
_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2)));
_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept));
# else
_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2)));
_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept));
# endif
@ -874,6 +891,7 @@ _GL_CXXALIASWARN (mbspbrk);
if none exists.
Unlike strspn(), this function works correctly in multibyte locales. */
_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2));
#endif
@ -993,6 +1011,7 @@ _GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
#if @GNULIB_STRVERSCMP@
# if !@HAVE_STRVERSCMP@
_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *)
_GL_ATTRIBUTE_PURE
_GL_ARG_NONNULL ((1, 2)));
# endif
_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));

View File

@ -66,17 +66,20 @@ extern "C" {
/* Check whether an UTF-8 string is well-formed.
Return NULL if valid, or a pointer to the first invalid unit otherwise. */
extern const uint8_t *
u8_check (const uint8_t *s, size_t n);
u8_check (const uint8_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
/* Check whether an UTF-16 string is well-formed.
Return NULL if valid, or a pointer to the first invalid unit otherwise. */
extern const uint16_t *
u16_check (const uint16_t *s, size_t n);
u16_check (const uint16_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
/* Check whether an UCS-4 string is well-formed.
Return NULL if valid, or a pointer to the first invalid unit otherwise. */
extern const uint32_t *
u32_check (const uint32_t *s, size_t n);
u32_check (const uint32_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
/* Elementary string conversions. */
@ -119,11 +122,14 @@ extern uint16_t *
failure. */
/* Similar to mblen(), except that s must not be NULL. */
extern int
u8_mblen (const uint8_t *s, size_t n);
u8_mblen (const uint8_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u16_mblen (const uint16_t *s, size_t n);
u16_mblen (const uint16_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u32_mblen (const uint32_t *s, size_t n);
u32_mblen (const uint32_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
/* Return the length (number of units) of the first character in S, putting
its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
@ -400,38 +406,50 @@ extern uint32_t *
/* Compare S1 and S2, each of length N. */
/* Similar to memcmp(). */
extern int
u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n);
u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n);
u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n);
u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
/* Compare S1 and S2. */
/* Similar to the gnulib function memcmp2(). */
extern int
u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2);
u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2)
_UC_ATTRIBUTE_PURE;
extern int
u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2);
u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2)
_UC_ATTRIBUTE_PURE;
extern int
u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2);
u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2)
_UC_ATTRIBUTE_PURE;
/* Search the string at S for UC. */
/* Similar to memchr(). */
extern uint8_t *
u8_chr (const uint8_t *s, size_t n, ucs4_t uc);
u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint16_t *
u16_chr (const uint16_t *s, size_t n, ucs4_t uc);
u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint32_t *
u32_chr (const uint32_t *s, size_t n, ucs4_t uc);
u32_chr (const uint32_t *s, size_t n, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
/* Count the number of Unicode characters in the N units from S. */
/* Similar to mbsnlen(). */
extern size_t
u8_mbsnlen (const uint8_t *s, size_t n);
u8_mbsnlen (const uint8_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
extern size_t
u16_mbsnlen (const uint16_t *s, size_t n);
u16_mbsnlen (const uint16_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
extern size_t
u32_mbsnlen (const uint32_t *s, size_t n);
u32_mbsnlen (const uint32_t *s, size_t n)
_UC_ATTRIBUTE_PURE;
/* Elementary string functions with memory allocation. */
@ -448,11 +466,14 @@ extern uint32_t *
/* Return the length (number of units) of the first character in S.
Return 0 if it is the NUL character. Return -1 upon failure. */
extern int
u8_strmblen (const uint8_t *s);
u8_strmblen (const uint8_t *s)
_UC_ATTRIBUTE_PURE;
extern int
u16_strmblen (const uint16_t *s);
u16_strmblen (const uint16_t *s)
_UC_ATTRIBUTE_PURE;
extern int
u32_strmblen (const uint32_t *s);
u32_strmblen (const uint32_t *s)
_UC_ATTRIBUTE_PURE;
/* Return the length (number of units) of the first character in S, putting
its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL
@ -487,20 +508,26 @@ extern const uint32_t *
/* Return the number of units in S. */
/* Similar to strlen(), wcslen(). */
extern size_t
u8_strlen (const uint8_t *s);
u8_strlen (const uint8_t *s)
_UC_ATTRIBUTE_PURE;
extern size_t
u16_strlen (const uint16_t *s);
u16_strlen (const uint16_t *s)
_UC_ATTRIBUTE_PURE;
extern size_t
u32_strlen (const uint32_t *s);
u32_strlen (const uint32_t *s)
_UC_ATTRIBUTE_PURE;
/* Return the number of units in S, but at most MAXLEN. */
/* Similar to strnlen(), wcsnlen(). */
extern size_t
u8_strnlen (const uint8_t *s, size_t maxlen);
u8_strnlen (const uint8_t *s, size_t maxlen)
_UC_ATTRIBUTE_PURE;
extern size_t
u16_strnlen (const uint16_t *s, size_t maxlen);
u16_strnlen (const uint16_t *s, size_t maxlen)
_UC_ATTRIBUTE_PURE;
extern size_t
u32_strnlen (const uint32_t *s, size_t maxlen);
u32_strnlen (const uint32_t *s, size_t maxlen)
_UC_ATTRIBUTE_PURE;
/* Copy SRC to DEST. */
/* Similar to strcpy(), wcscpy(). */
@ -562,16 +589,20 @@ extern uint32_t *
#ifdef __sun
/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */
extern int
u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2);
u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2)
_UC_ATTRIBUTE_PURE;
# define u8_strcmp u8_strcmp_gnu
#else
extern int
u8_strcmp (const uint8_t *s1, const uint8_t *s2);
u8_strcmp (const uint8_t *s1, const uint8_t *s2)
_UC_ATTRIBUTE_PURE;
#endif
extern int
u16_strcmp (const uint16_t *s1, const uint16_t *s2);
u16_strcmp (const uint16_t *s1, const uint16_t *s2)
_UC_ATTRIBUTE_PURE;
extern int
u32_strcmp (const uint32_t *s1, const uint32_t *s2);
u32_strcmp (const uint32_t *s1, const uint32_t *s2)
_UC_ATTRIBUTE_PURE;
/* Compare S1 and S2 using the collation rules of the current locale.
Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.
@ -587,11 +618,14 @@ extern int
/* Compare no more than N units of S1 and S2. */
/* Similar to strncmp(), wcsncmp(). */
extern int
u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n);
u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n);
u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
extern int
u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n);
u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
_UC_ATTRIBUTE_PURE;
/* Duplicate S, returning an identical malloc'd string. */
/* Similar to strdup(), wcsdup(). */
@ -605,74 +639,98 @@ extern uint32_t *
/* Find the first occurrence of UC in STR. */
/* Similar to strchr(), wcschr(). */
extern uint8_t *
u8_strchr (const uint8_t *str, ucs4_t uc);
u8_strchr (const uint8_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint16_t *
u16_strchr (const uint16_t *str, ucs4_t uc);
u16_strchr (const uint16_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint32_t *
u32_strchr (const uint32_t *str, ucs4_t uc);
u32_strchr (const uint32_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
/* Find the last occurrence of UC in STR. */
/* Similar to strrchr(), wcsrchr(). */
extern uint8_t *
u8_strrchr (const uint8_t *str, ucs4_t uc);
u8_strrchr (const uint8_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint16_t *
u16_strrchr (const uint16_t *str, ucs4_t uc);
u16_strrchr (const uint16_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
extern uint32_t *
u32_strrchr (const uint32_t *str, ucs4_t uc);
u32_strrchr (const uint32_t *str, ucs4_t uc)
_UC_ATTRIBUTE_PURE;
/* Return the length of the initial segment of STR which consists entirely
of Unicode characters not in REJECT. */
/* Similar to strcspn(), wcscspn(). */
extern size_t
u8_strcspn (const uint8_t *str, const uint8_t *reject);
u8_strcspn (const uint8_t *str, const uint8_t *reject)
_UC_ATTRIBUTE_PURE;
extern size_t
u16_strcspn (const uint16_t *str, const uint16_t *reject);
u16_strcspn (const uint16_t *str, const uint16_t *reject)
_UC_ATTRIBUTE_PURE;
extern size_t
u32_strcspn (const uint32_t *str, const uint32_t *reject);
u32_strcspn (const uint32_t *str, const uint32_t *reject)
_UC_ATTRIBUTE_PURE;
/* Return the length of the initial segment of STR which consists entirely
of Unicode characters in ACCEPT. */
/* Similar to strspn(), wcsspn(). */
extern size_t
u8_strspn (const uint8_t *str, const uint8_t *accept);
u8_strspn (const uint8_t *str, const uint8_t *accept)
_UC_ATTRIBUTE_PURE;
extern size_t
u16_strspn (const uint16_t *str, const uint16_t *accept);
u16_strspn (const uint16_t *str, const uint16_t *accept)
_UC_ATTRIBUTE_PURE;
extern size_t
u32_strspn (const uint32_t *str, const uint32_t *accept);
u32_strspn (const uint32_t *str, const uint32_t *accept)
_UC_ATTRIBUTE_PURE;
/* Find the first occurrence in STR of any character in ACCEPT. */
/* Similar to strpbrk(), wcspbrk(). */
extern uint8_t *
u8_strpbrk (const uint8_t *str, const uint8_t *accept);
u8_strpbrk (const uint8_t *str, const uint8_t *accept)
_UC_ATTRIBUTE_PURE;
extern uint16_t *
u16_strpbrk (const uint16_t *str, const uint16_t *accept);
u16_strpbrk (const uint16_t *str, const uint16_t *accept)
_UC_ATTRIBUTE_PURE;
extern uint32_t *
u32_strpbrk (const uint32_t *str, const uint32_t *accept);
u32_strpbrk (const uint32_t *str, const uint32_t *accept)
_UC_ATTRIBUTE_PURE;
/* Find the first occurrence of NEEDLE in HAYSTACK. */
/* Similar to strstr(), wcsstr(). */
extern uint8_t *
u8_strstr (const uint8_t *haystack, const uint8_t *needle);
u8_strstr (const uint8_t *haystack, const uint8_t *needle)
_UC_ATTRIBUTE_PURE;
extern uint16_t *
u16_strstr (const uint16_t *haystack, const uint16_t *needle);
u16_strstr (const uint16_t *haystack, const uint16_t *needle)
_UC_ATTRIBUTE_PURE;
extern uint32_t *
u32_strstr (const uint32_t *haystack, const uint32_t *needle);
u32_strstr (const uint32_t *haystack, const uint32_t *needle)
_UC_ATTRIBUTE_PURE;
/* Test whether STR starts with PREFIX. */
extern bool
u8_startswith (const uint8_t *str, const uint8_t *prefix);
u8_startswith (const uint8_t *str, const uint8_t *prefix)
_UC_ATTRIBUTE_PURE;
extern bool
u16_startswith (const uint16_t *str, const uint16_t *prefix);
u16_startswith (const uint16_t *str, const uint16_t *prefix)
_UC_ATTRIBUTE_PURE;
extern bool
u32_startswith (const uint32_t *str, const uint32_t *prefix);
u32_startswith (const uint32_t *str, const uint32_t *prefix)
_UC_ATTRIBUTE_PURE;
/* Test whether STR ends with SUFFIX. */
extern bool
u8_endswith (const uint8_t *str, const uint8_t *suffix);
u8_endswith (const uint8_t *str, const uint8_t *suffix)
_UC_ATTRIBUTE_PURE;
extern bool
u16_endswith (const uint16_t *str, const uint16_t *suffix);
u16_endswith (const uint16_t *str, const uint16_t *suffix)
_UC_ATTRIBUTE_PURE;
extern bool
u32_endswith (const uint32_t *str, const uint32_t *suffix);
u32_endswith (const uint32_t *str, const uint32_t *suffix)
_UC_ATTRIBUTE_PURE;
/* Divide STR into tokens separated by characters in DELIM.
This interface is actually more similar to wcstok than to strtok. */

View File

@ -1,4 +1,4 @@
/* Elementary types for the GNU UniString library.
/* Elementary types and macros for the GNU UniString library.
Copyright (C) 2002, 2005-2006, 2009-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
@ -23,4 +23,24 @@
/* Type representing a Unicode character. */
typedef uint32_t ucs4_t;
/* Attribute of a function whose result depends only on the arguments
(not pointers!) and which has no side effects. */
#ifndef _UC_ATTRIBUTE_CONST
# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
# else
# define _UC_ATTRIBUTE_CONST
# endif
#endif
/* Attribute of a function whose result depends only on the arguments
(possibly pointers) and global memory, and which has no side effects. */
#ifndef _UC_ATTRIBUTE_PURE
# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
# define _UC_ATTRIBUTE_PURE
# endif
#endif
#endif /* _UNITYPES_H */

View File

@ -83,6 +83,14 @@
#ifndef _@GUARD_PREFIX@_WCHAR_H
#define _@GUARD_PREFIX@_WCHAR_H
/* The __attribute__ feature is available in gcc versions 2.5 and later.
The attribute __pure__ was added in gcc 2.96. */
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
#else
# define _GL_ATTRIBUTE_PURE /* empty */
#endif
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
@ -135,11 +143,11 @@ typedef int rpl_mbstate_t;
# undef btowc
# define btowc rpl_btowc
# endif
_GL_FUNCDECL_RPL (btowc, wint_t, (int c));
_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
_GL_CXXALIAS_RPL (btowc, wint_t, (int c));
# else
# if !@HAVE_BTOWC@
_GL_FUNCDECL_SYS (btowc, wint_t, (int c));
_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (btowc, wint_t, (int c));
# endif
@ -160,12 +168,12 @@ _GL_WARN_ON_USE (btowc, "btowc is unportable - "
# undef wctob
# define wctob rpl_wctob
# endif
_GL_FUNCDECL_RPL (wctob, int, (wint_t wc));
_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
_GL_CXXALIAS_RPL (wctob, int, (wint_t wc));
# else
# if !defined wctob && !@HAVE_DECL_WCTOB@
/* wctob is provided by gnulib, or wctob exists but is not declared. */
_GL_FUNCDECL_SYS (wctob, int, (wint_t wc));
_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
# endif
@ -426,12 +434,12 @@ _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
# undef wcwidth
# define wcwidth rpl_wcwidth
# endif
_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t));
_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
# else
# if !@HAVE_DECL_WCWIDTH@
/* wcwidth exists but is not declared. */
_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t));
_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
# endif
@ -448,7 +456,8 @@ _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
/* Search N wide characters of S for C. */
#if @GNULIB_WMEMCHR@
# if !@HAVE_WMEMCHR@
_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n));
_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)
_GL_ATTRIBUTE_PURE);
# endif
/* On some systems, this function is defined as an overloaded function:
extern "C++" {
@ -479,7 +488,8 @@ _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
#if @GNULIB_WMEMCMP@
# if !@HAVE_WMEMCMP@
_GL_FUNCDECL_SYS (wmemcmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
(const wchar_t *s1, const wchar_t *s2, size_t n)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wmemcmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
@ -549,7 +559,7 @@ _GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
/* Return the number of wide characters in S. */
#if @GNULIB_WCSLEN@
# if !@HAVE_WCSLEN@
_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s));
_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
_GL_CXXALIASWARN (wcslen);
@ -565,7 +575,8 @@ _GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
/* Return the number of wide characters in S, but at most MAXLEN. */
#if @GNULIB_WCSNLEN@
# if !@HAVE_WCSNLEN@
_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
_GL_CXXALIASWARN (wcsnlen);
@ -684,7 +695,8 @@ _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
/* Compare S1 and S2. */
#if @GNULIB_WCSCMP@
# if !@HAVE_WCSCMP@
_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscmp);
@ -701,7 +713,8 @@ _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
#if @GNULIB_WCSNCMP@
# if !@HAVE_WCSNCMP@
_GL_FUNCDECL_SYS (wcsncmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
(const wchar_t *s1, const wchar_t *s2, size_t n)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcsncmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
@ -718,7 +731,8 @@ _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
/* Compare S1 and S2, ignoring case. */
#if @GNULIB_WCSCASECMP@
# if !@HAVE_WCSCASECMP@
_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscasecmp);
@ -735,7 +749,8 @@ _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
#if @GNULIB_WCSNCASECMP@
# if !@HAVE_WCSNCASECMP@
_GL_FUNCDECL_SYS (wcsncasecmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
(const wchar_t *s1, const wchar_t *s2, size_t n)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcsncasecmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
@ -803,7 +818,8 @@ _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
/* Find the first occurrence of WC in WCS. */
#if @GNULIB_WCSCHR@
# if !@HAVE_WCSCHR@
_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
_GL_ATTRIBUTE_PURE);
# endif
/* On some systems, this function is defined as an overloaded function:
extern "C++" {
@ -832,7 +848,8 @@ _GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
/* Find the last occurrence of WC in WCS. */
#if @GNULIB_WCSRCHR@
# if !@HAVE_WCSRCHR@
_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
_GL_ATTRIBUTE_PURE);
# endif
/* On some systems, this function is defined as an overloaded function:
extern "C++" {
@ -862,7 +879,8 @@ _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
of wide characters not in REJECT. */
#if @GNULIB_WCSCSPN@
# if !@HAVE_WCSCSPN@
_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
_GL_CXXALIASWARN (wcscspn);
@ -879,7 +897,8 @@ _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
of wide characters in ACCEPT. */
#if @GNULIB_WCSSPN@
# if !@HAVE_WCSSPN@
_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
_GL_CXXALIASWARN (wcsspn);
@ -896,7 +915,8 @@ _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
#if @GNULIB_WCSPBRK@
# if !@HAVE_WCSPBRK@
_GL_FUNCDECL_SYS (wcspbrk, wchar_t *,
(const wchar_t *wcs, const wchar_t *accept));
(const wchar_t *wcs, const wchar_t *accept)
_GL_ATTRIBUTE_PURE);
# endif
/* On some systems, this function is defined as an overloaded function:
extern "C++" {
@ -928,7 +948,8 @@ _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
#if @GNULIB_WCSSTR@
# if !@HAVE_WCSSTR@
_GL_FUNCDECL_SYS (wcsstr, wchar_t *,
(const wchar_t *haystack, const wchar_t *needle));
(const wchar_t *haystack, const wchar_t *needle)
_GL_ATTRIBUTE_PURE);
# endif
/* On some systems, this function is defined as an overloaded function:
extern "C++" {
@ -982,11 +1003,13 @@ _GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
# undef wcswidth
# define wcswidth rpl_wcswidth
# endif
_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n));
_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n)
_GL_ATTRIBUTE_PURE);
_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n));
# else
# if !@HAVE_WCSWIDTH@
_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n));
_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n)
_GL_ATTRIBUTE_PURE);
# endif
_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
# endif

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# Makefile.in generated by automake 1.11.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -43,6 +43,23 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@ -109,6 +126,11 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
@ -202,7 +224,6 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETS = @GNULIB_GETS@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@ -217,6 +238,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@ -688,6 +710,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
@ -746,6 +769,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@

View File

@ -1,4 +1,4 @@
# locale_h.m4 serial 14
# locale_h.m4 serial 18
dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@ -10,18 +10,29 @@ AC_DEFUN([gl_LOCALE_H],
dnl once only, before all statements that occur in other macros.
AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
dnl Persuade glibc <locale.h> to define locale_t.
dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_*
dnl members of 'struct lconv'.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
AC_REQUIRE([gl_STDDEF_H])
dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
dnl only if _LCONV_C99 is defined.
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
solaris*)
AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.])
;;
esac
AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001],
[gl_cv_header_locale_h_posix2001],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <locale.h>
int x = LC_MESSAGES;]],
int x = LC_MESSAGES;
int y = sizeof (((struct lconv *) 0)->decimal_point);]],
[[]])],
[gl_cv_header_locale_h_posix2001=yes],
[gl_cv_header_locale_h_posix2001=no])])
@ -54,6 +65,26 @@ AC_DEFUN([gl_LOCALE_H],
fi
AC_SUBST([HAVE_XLOCALE_H])
dnl Check whether 'struct lconv' is complete.
dnl Bionic libc's 'struct lconv' is just a dummy.
dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members.
AC_CACHE_CHECK([whether struct lconv is properly defined],
[gl_cv_sys_struct_lconv_ok],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <locale.h>
struct lconv l;
int x = sizeof (l.decimal_point);
int y = sizeof (l.int_p_cs_precedes);]],
[[]])],
[gl_cv_sys_struct_lconv_ok=yes],
[gl_cv_sys_struct_lconv_ok=no])
])
if test $gl_cv_sys_struct_lconv_ok = no; then
REPLACE_STRUCT_LCONV=1
fi
dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
gl_NEXT_HEADERS([locale.h])
@ -79,10 +110,13 @@ AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
AC_DEFUN([gl_LOCALE_H_DEFAULTS],
[
GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV])
GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE])
GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE])
dnl Assume proper GNU behavior unless another module says otherwise.
HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV])
REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
])

View File

@ -1,4 +1,4 @@
# stdio_h.m4 serial 40
# stdio_h.m4 serial 41
dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@ -18,7 +18,6 @@ AC_DEFUN([gl_STDIO_H],
GNULIB_GETC=1
GNULIB_GETCHAR=1
GNULIB_FGETS=1
GNULIB_GETS=1
GNULIB_FREAD=1
dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
dnl "expected source file, required through AC_LIBSOURCES, not found". It is
@ -72,10 +71,10 @@ AC_DEFUN([gl_STDIO_H],
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use, and which is not
dnl guaranteed by C89.
dnl guaranteed by both C89 and C11.
gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat
snprintf tmpfile vdprintf vsnprintf])
]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
renameat snprintf tmpfile vdprintf vsnprintf])
])
AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
@ -113,7 +112,6 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])

View File

@ -1,4 +1,4 @@
# warn-on-use.m4 serial 4
# warn-on-use.m4 serial 5
dnl Copyright (C) 2010-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is preserved.
# some systems declare functions in the wrong header, then INCLUDES
# should do likewise.
#
# If you assume C89, then it is generally safe to assume declarations
# for functions declared in that standard (such as gets) without
# It is generally safe to assume declarations for functions declared
# in the intersection of C89 and C11 (such as printf) without
# needing gl_WARN_ON_USE_PREPARE.
AC_DEFUN([gl_WARN_ON_USE_PREPARE],
[

View File

@ -31,4 +31,9 @@ en_AU
en_CA
en_GB
en_US
de
fi
fr
hr
ru

View File

@ -34,7 +34,13 @@ subdir = po
top_builddir = ..
# These options get passed to xgettext
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --width=132
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --width=132 \
--flag='err_exit:1:c-format' --flag='errno_exit:1:c-format' \
--flag='txdlgbox:11:c-format' --flag='txdlgbox:12:c-format' \
--flag='mkchstr:10:c-format' --flag='vmkchstr:10:c-format' \
--flag='left:8:c-format' \
--flag='center:8:c-format' \
--flag='right:8:c-format'
# These options get passed to msgmerge
MSGMERGE_OPTIONS = --width=132

BIN
po/de.gmo Normal file

Binary file not shown.

1729
po/de.po Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
po/fi.gmo Normal file

Binary file not shown.

1724
po/fi.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/fr.gmo Normal file

Binary file not shown.

1731
po/fr.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/hr.gmo Normal file

Binary file not shown.

1631
po/hr.po Normal file

File diff suppressed because it is too large Load Diff

BIN
po/ru.gmo

Binary file not shown.

648
po/ru.po

File diff suppressed because it is too large Load Diff

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: trader 7.3\n"
"Project-Id-Version: trader 7.4-pre2\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
"POT-Creation-Date: 2012-03-16 13:23+1100\n"
"POT-Creation-Date: 2012-04-14 14:31+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -129,37 +129,38 @@ msgstr ""
#. TRANSLATORS: The eight company names do NOT have to be literal
#. translations of the English names. In fact, if possible, the
#. names should start with successive letters of your alphabet (in
#. English, for example, "A" to "H"). No company name should be more
#. than 24 characters (column positions, to be precise) long.
#: src/globals.c:46
#. English, for example, "A" to "H"), and, ideally, be related to
#. constellations or stars in our galaxy. No company name should be
#. more than 24 characters (column positions, to be precise) long.
#: src/globals.c:47
msgid "Altair Starways"
msgstr ""
#: src/globals.c:47
#: src/globals.c:48
msgid "Betelgeuse, Ltd"
msgstr ""
#: src/globals.c:48
#: src/globals.c:49
msgid "Capella Freight Co"
msgstr ""
#: src/globals.c:49
#: src/globals.c:50
msgid "Denebola Shippers"
msgstr ""
#: src/globals.c:50
#: src/globals.c:51
msgid "Eridani Expediters"
msgstr ""
#: src/globals.c:51
#: src/globals.c:52
msgid "Fornax Express"
msgstr ""
#: src/globals.c:52
#: src/globals.c:53
msgid "Gemeni Inc"
msgstr ""
#: src/globals.c:53
#: src/globals.c:54
msgid "Hercules and Co"
msgstr ""
@ -171,7 +172,7 @@ msgstr ""
#. possible, these should be successive letters in your alphabet (in
#. English, "A" to "H"). Do NOT use digits or control characters.
#. Do not change or translate anything after the vertical line.
#: src/globals.c:67
#: src/globals.c:68
msgid "ABCDEFGH|input|Companies"
msgstr ""
@ -182,7 +183,7 @@ msgstr ""
#. should be successive letters in your alphabet. Do NOT use digits
#. or control characters. Do not change or translate anything after
#. the vertical line.
#: src/globals.c:79
#: src/globals.c:80
msgid "ABCDEFGHIJKLMNOPQRST|input|GameMoves"
msgstr ""
@ -193,7 +194,7 @@ msgstr ""
#. the remaining for the eight companies. Do not change or translate
#. anything after the vertical line. Double-width characters ARE
#. handled correctly.
#: src/globals.c:91
#: src/globals.c:92
msgid ".+*ABCDEFGH|output|MapVals"
msgstr ""
@ -203,7 +204,7 @@ msgstr ""
#. to the first character in the "input|GameMoves" string, and so on.
#. Do not change or translate anything after the vertical line.
#. Double-width characters ARE handled correctly.
#: src/globals.c:102
#: src/globals.c:103
msgid "abcdefghijklmnopqrst|output|GameMoves"
msgstr ""
@ -212,35 +213,35 @@ msgstr ""
#. on the gender of the player, it may be simpler to list cardinal
#. numbers instead (eg, "No. 1"). Up to five characters are allowed
#. (see ORDINAL_COLS in src/intf.h).
#: src/globals.c:113
#: src/globals.c:114
msgid "1st"
msgstr ""
#: src/globals.c:114
#: src/globals.c:115
msgid "2nd"
msgstr ""
#: src/globals.c:115
#: src/globals.c:116
msgid "3rd"
msgstr ""
#: src/globals.c:116
#: src/globals.c:117
msgid "4th"
msgstr ""
#: src/globals.c:117
#: src/globals.c:118
msgid "5th"
msgstr ""
#: src/globals.c:118
#: src/globals.c:119
msgid "6th"
msgstr ""
#: src/globals.c:119
#: src/globals.c:120
msgid "7th"
msgstr ""
#: src/globals.c:120
#: src/globals.c:121
msgid "8th"
msgstr ""
@ -250,6 +251,7 @@ msgid "Loading game %d... "
msgstr ""
#: src/game.c:226
#, c-format
msgid " First Player "
msgstr ""
@ -276,19 +278,23 @@ msgctxt "input|ContinueGame"
msgid "Cc"
msgstr ""
#: src/game.c:341 src/move.c:386
#: src/game.c:341 src/move.c:399
#, c-format
msgid "Enter game number [^{1^}-^{9^}] or ^{<CTRL><C>^} to cancel: "
msgstr ""
#: src/game.c:406
#, c-format
msgid "Please enter your name: "
msgstr ""
#: src/game.c:425
#, c-format
msgid "Do you need any instructions? [^{Y^}/^{N^}] "
msgstr ""
#: src/game.c:443
#, c-format
msgid " Enter Player Names "
msgstr ""
@ -298,10 +304,12 @@ msgid "Player %d: "
msgstr ""
#: src/game.c:529
#, c-format
msgid "Does any player need instructions? [^{Y^}/^{N^}] "
msgstr ""
#: src/game.c:563
#, c-format
msgid " Game Over "
msgstr ""
@ -313,6 +321,7 @@ msgstr[0] ""
msgstr[1] ""
#: src/game.c:575
#, c-format
msgid " Total Value "
msgstr ""
@ -336,12 +345,14 @@ msgid ""
msgstr ""
#: src/game.c:597
#, c-format
msgid " Game Winner "
msgstr ""
#. TRANSLATORS: "Player" is used as a column title in a
#. table containing all player names.
#: src/game.c:606 src/move.c:855
#: src/game.c:606 src/move.c:868
#, c-format
msgctxt "subtitle"
msgid "Player"
msgstr ""
@ -366,26 +377,31 @@ msgid " Turn: ^{%d^} "
msgstr ""
#: src/game.c:649
#, c-format
msgid " ^[*** Last Turn ***^] "
msgstr ""
#: src/game.c:693
#, c-format
msgid " Stock Portfolio "
msgstr ""
#. TRANSLATORS: The current player is bankrupt (has no
#. shares or cash, ie, whose total value is zero)
#: src/game.c:702
#, c-format
msgid "^[* * * B A N K R U P T * * *^]"
msgstr ""
#: src/game.c:717 src/exch.c:112
#, c-format
msgid "No companies on the map"
msgstr ""
#. TRANSLATORS: "Company" is a two-line column label in
#. a table containing a list of companies.
#: src/game.c:725 src/exch.c:120
#, c-format
msgctxt "subtitle"
msgid ""
"\n"
@ -411,6 +427,7 @@ msgstr ""
#. maximum column width is 10 characters (see
#. STOCK_OWNED_COLS in src/intf.h).
#: src/game.c:739
#, c-format
msgctxt "subtitle"
msgid ""
"Holdings\n"
@ -453,110 +470,138 @@ msgstr ""
#. Note that some of these labels are used for both the
#. Player Status window and the Trading Bank window.
#: src/game.c:796
#, c-format
msgctxt "label"
msgid "Total value: "
msgstr ""
#: src/game.c:800 src/exch.c:322
#: src/game.c:800 src/exch.c:324
#, c-format
msgctxt "label"
msgid "Current cash: "
msgstr ""
#: src/game.c:807 src/exch.c:330
#: src/game.c:807 src/exch.c:332
#, c-format
msgctxt "label"
msgid "Current debt: "
msgstr ""
#: src/game.c:813 src/exch.c:335
#: src/game.c:813 src/exch.c:337
#, c-format
msgctxt "label"
msgid "Interest rate: "
msgstr ""
#: src/move.c:239 src/exch.c:182
#. TRANSLATORS: Each label may be up to 37 characters wide
#. (for <1> and <2>) or 38 characters wide (for <3> and
#. <CTRL><C>). The sequences "^{" and "^}" change the
#. character rendition (attributes) and take up no space.
#: src/move.c:243 src/exch.c:182
#, c-format
msgid "^{<1>^} Display stock portfolio"
msgstr ""
#: src/move.c:241
#: src/move.c:245
#, c-format
msgid "^{<2>^} Declare bankruptcy"
msgstr ""
#: src/move.c:243
#: src/move.c:247
#, c-format
msgid "^{<3>^} Save and end the game"
msgstr ""
#: src/move.c:245
msgid "^{<CTRL><C>^} Quit the game"
msgstr ""
#: src/move.c:249
#, c-format
msgid "^{<CTRL><C>^} Quit the game"
msgstr ""
#. TRANSLATORS: The maximum column width is 38 characters,
#. including the trailing space. The sequences "^{", "^}",
#. "^[" and "^]" do not take up any room. "%lc" takes up
#. either one or two columns, depending on the appropriate
#. "output|GameMoves" string in the current PO file.
#: src/move.c:258
#, c-format
msgid "Select move [^[%lc^]-^[%lc^]/^{1^}-^{3^}/^{<CTRL><C>^}]: "
msgstr ""
#. TRANSLATORS: "Move" refers to the choice of
#. moves made by the current player (out of a
#. selection of 20 moves).
#: src/move.c:282
#. TRANSLATORS: A game usually consists of
#. DEFAULT_MAX_TURN (50) turns. On each
#. turn, the computer randomly selects
#. NUMBER_MOVES (20) moves (positions on the
#. map); each player selects just one move
#. per turn. "Move" refers to the player's
#. choice.
#: src/move.c:295
#, c-format
msgid "Move ^{%lc^}"
msgstr ""
#: src/move.c:303
#: src/move.c:316
#, c-format
msgid "^{<2>^} (Declare bankruptcy)"
msgstr ""
#: src/move.c:312
#: src/move.c:325
#, c-format
msgid "^{<3>^} (Save and end the game)"
msgstr ""
#: src/move.c:333
#: src/move.c:346
#, c-format
msgid "^{<CTRL><C>^} (Quit the game)"
msgstr ""
#: src/move.c:348
#: src/move.c:361
#, c-format
msgid "Are you sure? [^{Y^}/^{N^}] "
msgstr ""
#: src/move.c:365 src/move.c:443
#: src/move.c:378 src/move.c:456
#, c-format
msgid "Saving game %d... "
msgstr ""
#: src/move.c:673 src/move.c:681 src/move.c:1026 src/move.c:1062
#: src/move.c:686 src/move.c:694 src/move.c:1052 src/move.c:1089
#, c-format
msgid " Bankruptcy Court "
msgstr ""
#. TRANSLATORS: %ls is the player's name.
#: src/move.c:675
#: src/move.c:688
#, c-format
msgid "%ls has been declared bankrupt by the Interstellar Trading Bank."
msgstr ""
#. TRANSLATORS: %ls is the player's name.
#: src/move.c:683
#: src/move.c:696
#, c-format
msgid "%ls has declared bankruptcy."
msgstr ""
#: src/move.c:751
#: src/move.c:764
#, c-format
msgid " New Company "
msgstr ""
#: src/move.c:752
#: src/move.c:765
#, c-format
msgid ""
"A new company has been formed!\n"
"Its name is ^{%ls^}."
msgstr ""
#: src/move.c:811
#: src/move.c:824
#, c-format
msgid ""
"^{%ls^} has just merged into ^{%ls^}.\n"
"Please note the following transactions:\n"
msgstr ""
#: src/move.c:817
#: src/move.c:830
#, c-format
msgid " Company Merger "
msgstr ""
@ -567,14 +612,16 @@ msgstr ""
#. the same length and must contain a trailing space for the
#. display routines to work correctly. The maximum length of
#. each label is 36 characters.
#: src/move.c:837
#: src/move.c:850
#, c-format
msgctxt "label"
msgid "Old stock: "
msgstr ""
#. TRANSLATORS: "New stock" refers to the company that has
#. absorbed the other due to a merger.
#: src/move.c:848
#: src/move.c:861
#, c-format
msgctxt "label"
msgid "New Stock: "
msgstr ""
@ -584,7 +631,7 @@ msgstr ""
#. symbol in the current locale. The maximum column width is
#. 12 characters INCLUDING the currency symbol (see
#. MERGE_BONUS_COLS in src/intf.h).
#: src/move.c:862
#: src/move.c:875
#, c-format
msgctxt "subtitle"
msgid "Bonus (%ls)"
@ -593,7 +640,8 @@ msgstr ""
#. TRANSLATORS: "Total" refers to the total number of shares in
#. the new company after a merger. The maximum column width is
#. 8 characters (see MERGE_TOTAL_STOCK_COLS in src/intf.h).
#: src/move.c:867
#: src/move.c:880
#, c-format
msgctxt "subtitle"
msgid "Total"
msgstr ""
@ -602,7 +650,8 @@ msgstr ""
#. player receives in the surviving company after a merger.
#. The maximum column width is 8 characters (see
#. MERGE_NEW_STOCK_COLS in src/intf.h).
#: src/move.c:874
#: src/move.c:887
#, c-format
msgctxt "subtitle"
msgid "New"
msgstr ""
@ -610,13 +659,14 @@ msgstr ""
#. TRANSLATORS: "Old" refers to how many shares each player had
#. in the company ceasing existence. The maximum column width
#. is 8 characters (see MERGE_OLD_STOCK_COLS in src/intf.h).
#: src/move.c:880
#: src/move.c:893
#, c-format
msgctxt "subtitle"
msgid "Old"
msgstr ""
#. TRANSLATORS: %ls represents the company name.
#: src/move.c:1028
#: src/move.c:1054
#, c-format
msgid ""
"%ls has been declared bankrupt by the Interstellar Trading Bank.\n"
@ -625,7 +675,7 @@ msgid ""
msgstr ""
#. TRANSLATORS: %ls represents the company name.
#: src/move.c:1051
#: src/move.c:1078
#, c-format
msgid ""
"%ls has been declared bankrupt by the Interstellar Trading Bank.\n"
@ -641,7 +691,8 @@ msgstr ""
#. least one trailing space for the display
#. routines to work correctly. The maximum
#. length is 28 characters.
#: src/move.c:1079
#: src/move.c:1106
#, c-format
msgctxt "label"
msgid "Amount paid per share: "
msgstr ""
@ -650,16 +701,25 @@ msgstr ""
#. share price of a company before it was forced
#. into bankruptcy by the Bank. This label must be
#. the same width as "Amount paid per share".
#: src/move.c:1087
#: src/move.c:1114
#, c-format
msgctxt "label"
msgid "Old share value: "
msgstr ""
#: src/move.c:1180 src/exch.c:319
#: src/move.c:1197 src/move.c:1232 src/exch.c:321
#, c-format
msgid " Interstellar Trading Bank "
msgstr ""
#: src/move.c:1182
#: src/move.c:1199
#, c-format
msgid ""
"You were forced to borrow %N\n"
"to cover losses from company shares."
msgstr ""
#: src/move.c:1234
#, c-format
msgid ""
"Your debt has amounted to %N!\n"
@ -667,6 +727,7 @@ msgid ""
msgstr ""
#: src/exch.c:98
#, c-format
msgid " Interstellar Stock Exchange "
msgstr ""
@ -676,6 +737,7 @@ msgstr ""
#. maximum column width is 10 characters (see
#. STOCK_LEFT_COLS in src/intf.h).
#: src/exch.c:127
#, c-format
msgctxt "subtitle"
msgid ""
"Shares\n"
@ -688,25 +750,32 @@ msgstr ""
#. given company. The maximum column width is 10
#. characters (see STOCK_ISSUED_COLS in src/intf.h).
#: src/exch.c:134
#, c-format
msgctxt "subtitle"
msgid ""
"Shares\n"
"issued"
msgstr ""
#: src/exch.c:184
#. TRANSLATORS: Each label may be up to 37 characters wide
#. (for <1> and <2>) or 38 characters wide (for <3> and <4>).
#: src/exch.c:186
#, c-format
msgid "^{<2>^} Display galaxy map"
msgstr ""
#: src/exch.c:186
#: src/exch.c:188
#, c-format
msgid "^{<3>^} Visit the Trading Bank"
msgstr ""
#: src/exch.c:188
#: src/exch.c:190
#, c-format
msgid "^{<4>^} Exit the Stock Exchange"
msgstr ""
#: src/exch.c:191
#: src/exch.c:193
#, c-format
msgid "Enter selection [^[Company letter^]/^{1^}-^{4^}]: "
msgstr ""
@ -719,7 +788,8 @@ msgstr ""
#.
#. Note that some of these labels are used for both the Player
#. Status window and the Trading Bank window.
#: src/exch.c:349
#: src/exch.c:351
#, c-format
msgctxt "label"
msgid "Credit limit: "
msgstr ""
@ -728,56 +798,68 @@ msgstr ""
#. from the Bank" menu options must all be the same length
#. (ie, padded with trailing spaces as required). The maximum
#. length is 72 characters.
#: src/exch.c:364
#: src/exch.c:366
#, c-format
msgid "^{<1>^} Borrow money "
msgstr ""
#: src/exch.c:366
#: src/exch.c:368
#, c-format
msgid "^{<2>^} Repay debt "
msgstr ""
#: src/exch.c:368
#: src/exch.c:370
#, c-format
msgid "^{<3>^} Exit from the Bank"
msgstr ""
#: src/exch.c:371
#: src/exch.c:373
#, c-format
msgid "Enter selection [^{1^}-^{3^}]: "
msgstr ""
#: src/exch.c:424
#: src/exch.c:426
#, c-format
msgid " Insufficient Credit Limit "
msgstr ""
#: src/exch.c:425
#: src/exch.c:427
#, c-format
msgid "The Bank will not lend you any more money."
msgstr ""
#: src/exch.c:445
#: src/exch.c:447
#, c-format
msgid "How much do you wish to borrow? "
msgstr ""
#: src/exch.c:477
#: src/exch.c:479
#, c-format
msgid " No Debt "
msgstr ""
#: src/exch.c:478
#: src/exch.c:480
#, c-format
msgid "You have no debt to repay."
msgstr ""
#: src/exch.c:482
#: src/exch.c:484
#, c-format
msgid " No Cash "
msgstr ""
#: src/exch.c:483
#: src/exch.c:485
#, c-format
msgid "You have no cash with which to repay the debt!"
msgstr ""
#: src/exch.c:503
#: src/exch.c:505
#, c-format
msgid "How much do you wish to repay? "
msgstr ""
#. TRANSLATORS: %ls represents the company name.
#: src/exch.c:579
#: src/exch.c:581
#, c-format
msgid " Stock Transaction in %ls "
msgstr ""
@ -790,27 +872,31 @@ msgstr ""
#. and must have at least one trailing space for the output
#. routines to work correctly. The maximum length of each
#. label is 22 characters.
#: src/exch.c:590
#: src/exch.c:592
#, c-format
msgctxt "label|Stock A"
msgid "Shares issued: "
msgstr ""
#. TRANSLATORS: "Shares left" is the number of shares that are
#. left to be purchased in the current company.
#: src/exch.c:598
#: src/exch.c:600
#, c-format
msgctxt "label|Stock A"
msgid "Shares left: "
msgstr ""
#. TRANSLATORS: "Price per share" is the cost of each share in
#. the current company.
#: src/exch.c:605
#: src/exch.c:607
#, c-format
msgctxt "label|Stock A"
msgid "Price per share: "
msgstr ""
#. TRANSLATORS: "Return" is the share return as a percentage.
#: src/exch.c:611
#: src/exch.c:613
#, c-format
msgctxt "label|Stock A"
msgid "Return: "
msgstr ""
@ -823,109 +909,129 @@ msgstr ""
#. least one trailing space for the display routines to work
#. correctly. The maximum length of each label is 18
#. characters.
#: src/exch.c:624
#: src/exch.c:626
#, c-format
msgctxt "label|Stock B"
msgid "Current holdings: "
msgstr ""
#. TRANSLATORS: "Percentage owned" is the current player's
#. percentage ownership in this particular company.
#: src/exch.c:631
#: src/exch.c:633
#, c-format
msgctxt "label|Stock B"
msgid "Percentage owned: "
msgstr ""
#: src/exch.c:636
#: src/exch.c:638
#, c-format
msgctxt "label|Stock B"
msgid "Current cash: "
msgstr ""
#: src/exch.c:647
#. TRANSLATORS: Each label may be up to 35 characters wide
#. (for <1> and <2>) or 36 characters wide (for <3> and <4>).
#: src/exch.c:651
#, c-format
msgid "^{<1>^} Buy stock from company"
msgstr ""
#: src/exch.c:649
#: src/exch.c:653
#, c-format
msgid "^{<2>^} Sell stock back to company"
msgstr ""
#: src/exch.c:651
#: src/exch.c:655
#, c-format
msgid "^{<3>^} Bid company to issue more shares"
msgstr ""
#: src/exch.c:653
#: src/exch.c:657
#, c-format
msgid "^{<4>^} Exit to the Stock Exchange"
msgstr ""
#: src/exch.c:656
#: src/exch.c:660
#, c-format
msgid "Enter selection [^{1^}-^{4^}]: "
msgstr ""
#: src/exch.c:712
#: src/exch.c:716
#, c-format
msgid " No Shares Available "
msgstr ""
#: src/exch.c:713
#: src/exch.c:717
#, c-format
msgid "No more shares are available for purchase."
msgstr ""
#: src/exch.c:717
#: src/exch.c:721
#, c-format
msgid " Insufficient Cash "
msgstr ""
#: src/exch.c:718
#: src/exch.c:722
#, c-format
msgid ""
"You do not have enough cash\n"
"to purchase additional shares."
msgstr ""
#: src/exch.c:729
#: src/exch.c:733
#, c-format
msgid "You can purchase ^{one^} share."
msgid_plural "You can purchase up to ^{%'ld^} shares."
msgstr[0] ""
msgstr[1] ""
#: src/exch.c:735
#: src/exch.c:739
#, c-format
msgid "How many shares do you wish to purchase? "
msgstr ""
#: src/exch.c:756
#: src/exch.c:760
#, c-format
msgid " No Shares "
msgstr ""
#: src/exch.c:757
#: src/exch.c:761
#, c-format
msgid "You do not have any shares to sell."
msgstr ""
#: src/exch.c:764
#: src/exch.c:768
#, c-format
msgid "You can sell ^{one^} share."
msgid_plural "You can sell up to ^{%'ld^} shares."
msgstr[0] ""
msgstr[1] ""
#: src/exch.c:770
#: src/exch.c:774
#, c-format
msgid "How many shares do you wish to sell? "
msgstr ""
#: src/exch.c:798
#: src/exch.c:802
#, c-format
msgid " No Shares Issued "
msgstr ""
#. TRANSLATORS: %ls represents the company name.
#: src/exch.c:800
#: src/exch.c:804
#, c-format
msgid ""
"%ls has refused\n"
"to issue more shares."
msgstr ""
#: src/exch.c:805
#: src/exch.c:809
#, c-format
msgid " Shares Issued "
msgstr ""
#. TRANSLATORS: %ls represents the company name.
#: src/exch.c:807
#: src/exch.c:811
#, c-format
msgid ""
"%ls has issued\n"
@ -967,6 +1073,7 @@ msgid "%s: could not convert string"
msgstr ""
#: src/fileio.c:255
#, c-format
msgid " Game Not Found "
msgstr ""
@ -976,6 +1083,7 @@ msgid "Game %d has not been saved to disk."
msgstr ""
#: src/fileio.c:263
#, c-format
msgid " Game Not Loaded "
msgstr ""
@ -1023,6 +1131,7 @@ msgid "%s: illegal field on line %d"
msgstr ""
#: src/fileio.c:466 src/fileio.c:487
#, c-format
msgid " Game Not Saved "
msgstr ""
@ -1102,7 +1211,17 @@ msgstr ""
#. that would translate to just one character (or maybe two) in the
#. output text).
#.
#: src/help.c:103
#. Formatting the help text is probably the most complicated and tedious
#. part of translating Star Traders. The author and maintainer of this
#. game is more than happy to help you with this task: if you are able
#. to provide a translation, even if it is not formatted correctly, the
#. maintainer will perform the necessary adjustments for word-wrapping
#. and justification. In addition, remember that you have up to 10
#. pages in which to display your help text: the translation does not
#. need to correspond exactly to the original text. This text will not
#. be changing any time soon!
#.
#: src/help.c:113
msgid ""
"^BStar Traders^N is a simple game of interstellar trading. The object of the\n"
"game is to amass the greatest amount of wealth possible. This is done by\n"
@ -1122,7 +1241,7 @@ msgid ""
" ^e ~. ~. ~. ~. ^s~*^e ~. ~. ~. ~. ^N\n"
msgstr ""
#: src/help.c:122
#: src/help.c:132
msgid ""
"The computer selects ^B~m^N moves (labeled ^k~1^N to ^k~M^N) at random, and places these\n"
"on the map. To select any of the highlighted positions, press that letter.\n"
@ -1141,7 +1260,7 @@ msgid ""
"selected on the above map, a ^o ~+ ^N would be placed at that position.\n"
msgstr ""
#: src/help.c:140
#: src/help.c:150
msgid ""
"If, on the other hand, a position next to a star (or another outpost) is\n"
"selected, a ^Bcompany^N would be formed and its letter would appear on the map.\n"
@ -1160,7 +1279,7 @@ msgid ""
" ^e ~. ~. ~. ~. ^s~*^e ~. ~. ~. ^k~8^e ^N\n"
msgstr ""
#: src/help.c:158
#: src/help.c:168
msgid ""
"Selecting positions next to stars increases the value of your stock by about\n"
"five times as much as an extension not next to a star. Thus move ^k~6^N should\n"
@ -1179,7 +1298,7 @@ msgid ""
"than it would for outposts not next to stars.\n"
msgstr ""
#: src/help.c:176
#: src/help.c:186
msgid ""
"If two companies are separated on the map by only one square, then they can\n"
"be ^Bmerged^N into one company by selecting that position (if available). For\n"
@ -1199,7 +1318,7 @@ msgid ""
"is also paid, proportional to the percentage of the old company owned.\n"
msgstr ""
#: src/help.c:195
#: src/help.c:205
msgid ""
"Once you select your move, you enter the ^BInterstellar Stock Exchange^N. Here\n"
"you may purchase shares, sell them, borrow from the Trading Bank or repay\n"
@ -1219,27 +1338,32 @@ msgid ""
"value of cash, stock and debt). ^HGood luck^N and may the best person win!\n"
msgstr ""
#: src/help.c:215
msgid "@ Help text, page 7"
#: src/help.c:225
msgid "@ Help text, page 7\n"
msgstr ""
#: src/help.c:216
msgid "@ Help text, page 8"
#: src/help.c:226
msgid "@ Help text, page 8\n"
msgstr ""
#: src/help.c:217
msgid "@ Help text, page 9"
#: src/help.c:227
msgid "@ Help text, page 9\n"
msgstr ""
#: src/help.c:218
msgid "@ Help text, page 10"
#: src/help.c:228
msgid "@ Help text, page 10\n"
msgstr ""
#: src/help.c:270
#: src/help.c:280
#, c-format
msgid " How to Play "
msgstr ""
#: src/help.c:272
#. TRANSLATORS: The first %d is the current page number,
#. the second is the number of pages your help text takes
#. (6, in English). You can replace the second %d with a
#. fixed word, if you like.
#: src/help.c:286
#, c-format
msgid "Page %d of %d"
msgstr ""
@ -1247,7 +1371,8 @@ msgstr ""
#. TRANSLATORS: The reason the user is not asked "Press any
#. key to continue" is historical: many, many people used to
#. ask "where is the <ANY> key?" :-)
#: src/help.c:473 src/intf.c:3035
#: src/help.c:487 src/intf.c:3035
#, c-format
msgid "[ Press <SPACE> to continue ] "
msgstr ""
@ -1257,7 +1382,8 @@ msgstr ""
#. <BACKSPACE>, and almost any other key instead of
#. <SPACE> (other than <ESC>, <CANCEL>, <EXIT>, <CTRL><C>,
#. <CTRL><G> or <CTRL><\>).
#: src/help.c:480
#: src/help.c:494
#, c-format
msgid "[ Press <SPACE> to continue or <BACKSPACE> for the previous page ] "
msgstr ""
@ -1277,10 +1403,12 @@ msgid "terminal size is too small (%d x %d required)"
msgstr ""
#: src/intf.c:610
#, c-format
msgid "Star Traders"
msgstr ""
#: src/intf.c:1265
#, c-format
msgid "mkchstr_conv: NUL"
msgstr ""
@ -1341,6 +1469,7 @@ msgid ": "
msgstr ""
#: src/utils.c:238
#, c-format
msgid "out of memory"
msgstr ""
@ -1350,6 +1479,7 @@ msgid "xmbstowcs: `%s'"
msgstr ""
#: src/utils.c:611
#, c-format
msgid "xwcrtomb: NUL"
msgstr ""

View File

@ -1,4 +1,4 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# Makefile.in generated by automake 1.11.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -44,6 +44,23 @@
# along with this program. If not, see http://www.gnu.org/licenses/.
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@ -128,6 +145,11 @@ CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(trader_SOURCES)
DIST_SOURCES = $(trader_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -223,7 +245,6 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETS = @GNULIB_GETS@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@ -238,6 +259,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@ -709,6 +731,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
@ -767,6 +790,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
@ -921,8 +945,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \

View File

@ -83,7 +83,7 @@ void exchange_stock (void)
return;
}
newtxwin(17, WIN_COLS, 1, WCENTER, false, 0);
newtxwin(16, WIN_COLS, 1, WCENTER, false, 0);
w = getmaxx(curwin);
while (selection != SEL_EXIT) {
@ -176,11 +176,13 @@ void exchange_stock (void)
wrefresh(curwin);
// Show menu of choices for the player
newtxwin(6, WIN_COLS, 18, WCENTER, true, attr_normal_window);
newtxwin(7, WIN_COLS, 17, WCENTER, true, attr_normal_window);
left(curwin, 3, 2, attr_normal, attr_keycode, 0, 1,
_("^{<1>^} Display stock portfolio"));
left(curwin, 4, 2, attr_normal, attr_keycode, 0, 1,
/* TRANSLATORS: Each label may be up to 37 characters wide
(for <1> and <2>) or 38 characters wide (for <3> and <4>). */
_("^{<2>^} Display galaxy map"));
left(curwin, 3, getmaxx(curwin) / 2, attr_normal, attr_keycode, 0, 1,
_("^{<3>^} Visit the Trading Bank"));
@ -644,6 +646,8 @@ void trade_shares (int num, bool *bid_used)
newtxwin(7, WIN_COLS - 4, 14, WCENTER, true, attr_normal_window);
left(curwin, 3, 2, attr_normal, attr_keycode, 0, 1,
/* TRANSLATORS: Each label may be up to 35 characters wide
(for <1> and <2>) or 36 characters wide (for <3> and <4>). */
_("^{<1>^} Buy stock from company"));
left(curwin, 4, 2, attr_normal, attr_keycode, 0, 1,
_("^{<2>^} Sell stock back to company"));

View File

@ -346,7 +346,7 @@ bool load_game (int num)
load_game_read_int(n, n == MAX_Y);
load_game_read_int(max_turn, max_turn >= 1);
load_game_read_int(turn_number, turn_number >= 1 && turn_number <= max_turn);
load_game_read_int(number_players, number_players >= 1 && number_players < MAX_PLAYERS);
load_game_read_int(number_players, number_players >= 1 && number_players <= MAX_PLAYERS);
load_game_read_int(current_player, current_player >= 0 && current_player < number_players);
load_game_read_int(first_player, first_player >= 0 && first_player < number_players);
load_game_read_int(n, n == MAX_COMPANIES);

View File

@ -41,8 +41,9 @@ const char *company_name[MAX_COMPANIES] = {
/* TRANSLATORS: The eight company names do NOT have to be literal
translations of the English names. In fact, if possible, the
names should start with successive letters of your alphabet (in
English, for example, "A" to "H"). No company name should be more
than 24 characters (column positions, to be precise) long. */
English, for example, "A" to "H"), and, ideally, be related to
constellations or stars in our galaxy. No company name should be
more than 24 characters (column positions, to be precise) long. */
N_("Altair Starways"),
N_("Betelgeuse, Ltd"),
N_("Capella Freight Co"),

View File

@ -47,7 +47,7 @@
#define MAX_PLAYERS 8 // Maximum number of players
#define INITIAL_CASH 6000.00 // Initial cash per player
#define MAX_OVERDRAFT 1000.00 // Max. value player can go negative
#define PROB_BANKRUPTCY 0.07 // If overdraft, 7% chance of bankruptcy
#define MAKE_BANKRUPT 0.07 // If overdraft, 7% chance of bankruptcy
#define MAX_COMPANIES 8 // Max. number of companies (do not change!)
#define INITIAL_STOCK_ISSUED 5 // Initial number of shares issued out
@ -55,34 +55,44 @@
#define INITIAL_SHARE_PRICE 60.00 // Initial share price
#define SHARE_PRICE_INC 60.00 // Share price incr. for increase in shipping
#define SHARE_PRICE_INC_OUTPOST 70.00 // Incr. for adding an outpost
#define SHARE_PRICE_INC_OUTSTAR 70.00 // Extra incr. for adding outpost next to star
#define SHARE_PRICE_INC_OUTPOST 75.00 // Incr. for adding an outpost
#define SHARE_PRICE_INC_OUTSTAR 150.00 // Extra incr. for adding outpost next to star
#define SHARE_PRICE_INC_STAR 300.00 // Incr. for adding next to star
#define SHARE_PRICE_INC_EXTRA 0.50 // Extra factor when incr. share price
#define PRICE_INC_ADJUST_MIN 0.75 // Actual incr. may be as low as 75% of nominal
#define PRICE_INC_ADJUST_MAX 1.25 // Actual incr. may be as high as 125%
#define MAX_STOCK_RATIO_MIN 0.10 // Min. multiplier to increment available shares
#define MAX_STOCK_RATIO_MAX 0.25 // Max. multiplier, using share price incr.
#define MERGE_STOCK_RATIO 0.50 // 50% of old shares are credited to new company
#define COMPANY_BANKRUPTCY 0.01 // 1% chance of company bankruptcy
#define MERGE_BONUS_RATE 10.0 // Multiplier for merger cash bonus
#define MERGE_PRICE_ADJUST_MIN 0.40 // Minimum of old share price used as increment
#define MERGE_PRICE_ADJUST_MAX 0.60 // Maximum of old share price used as increment
#define COMPANY_BANKRUPTCY 0.03 // 3% chance of company bankruptcy (if return < 0)
#define ALL_ASSETS_TAKEN 0.20 // 20% chance of assets taken of same
#define INC_SHARE_PRICE 0.30 // 30% chance for increasing share price
#define DEC_SHARE_PRICE 0.65 // 65% x 30% chance of decrementing same
#define CHANGE_SHARE_PRICE 0.35 // 35% chance for changing share price
#define DEC_SHARE_PRICE 0.65 // 65% x 35% chance of decrementing same
#define PRICE_CHANGE_RATE 0.25 // Up to 25% of share price is used to incr./decr.
#define INITIAL_RETURN 0.05 // Initial return per share: 5%
#define GROWING_RETURN_CHANGE 0.25 // Chance of changing return when company grows
#define GROWING_RETURN_INC 0.60 // 60% chance such change will increase return
#define CHANGE_COMPANY_RETURN 0.40 // Chance of randomly changing return
#define COMPANY_RETURN_INC 0.75 // 75% chance such change will increase return
#define MAX_COMPANY_RETURN 0.40 // Maximum return per share
#define RETURN_DIVIDER 1.50 // Min. amount by which to divide if return too large
#define MIN_COMPANY_RETURN -0.10 // Minimum return per share (yes, negative!)
#define MAX_COMPANY_RETURN 0.20 // Maximum return per share
#define CHANGE_COMPANY_RETURN 0.50 // Chance of randomly changing return
#define DEC_COMPANY_RETURN 0.50 // Chance such change will decrease return
#define RETURN_MAX_CHANGE 0.03 // Maximum that company return will change
#define CHANGE_RETURN_GROWING 0.25 // Chance of changing return when company grows
#define DEC_RETURN_GROWING 0.35 // 35% chance such change will decrement return
#define GROWING_MAX_CHANGE 0.02 // Maximum that that return can change
#define OWNERSHIP_BONUS 2.00 // Bonus amount based on percentage ownership
#define BID_CHANCE 0.75 // 75% chance of successful bidding
#define MAX_SHARES_BIDDED 200 // Max. number of shares issued
#define INITIAL_INTEREST_RATE 0.10 // Initial bank interest rate: 10%
#define CHANGE_INTEREST_RATE 0.30 // 30% chance of changing interest rate
#define INTEREST_RATE_INC 0.65 // 65% chance of above being an increment
#define MAX_INTEREST_RATE 0.30 // Maximum interest rate
#define INTEREST_RATE_DIVIDER 1.50 // Min. amount by which to divide if interest is too high
#define MIN_INTEREST_RATE 0.02 // Minimum interest rate
#define MAX_INTEREST_RATE 0.20 // Maximum interest rate
#define CHANGE_INTEREST_RATE 0.40 // 40% chance of changing interest rate
#define DEC_INTEREST_RATE 0.45 // 40% x 45% chance of decrease the same
#define INTEREST_MAX_CHANGE 0.03 // Maximum that interest rate will change
#define CREDIT_LIMIT_RATE 2.00 // Multiplier for credit limit
#define ROUNDING_AMOUNT 0.01 // Round off smaller amounts to zero
@ -96,7 +106,7 @@
typedef struct company_info {
wchar_t *name; // Company name
double share_price; // Share price
double share_return; // Return per share
double share_return; // Return per share (may be negative)
long int stock_issued; // Total stock sold to players
long int max_stock; // Max. stock that company has
bool on_map; // True if company on map

View File

@ -99,6 +99,16 @@ static const char *help_text[HELP_TEXT_PAGES] = {
the galaxy map, use something like "^k~1^N" (a six-character sequence
that would translate to just one character (or maybe two) in the
output text).
Formatting the help text is probably the most complicated and tedious
part of translating Star Traders. The author and maintainer of this
game is more than happy to help you with this task: if you are able
to provide a translation, even if it is not formatted correctly, the
maintainer will perform the necessary adjustments for word-wrapping
and justification. In addition, remember that you have up to 10
pages in which to display your help text: the translation does not
need to correspond exactly to the original text. This text will not
be changing any time soon!
*/
N_( ""
"^BStar Traders^N is a simple game of interstellar trading. The object of the\n"
@ -212,10 +222,10 @@ static const char *help_text[HELP_TEXT_PAGES] = {
"")
#ifdef ENABLE_NLS
, N_("@ Help text, page 7")
, N_("@ Help text, page 8")
, N_("@ Help text, page 9")
, N_("@ Help text, page 10")
, N_("@ Help text, page 7\n")
, N_("@ Help text, page 8\n")
, N_("@ Help text, page 9\n")
, N_("@ Help text, page 10\n")
#endif
};
@ -269,6 +279,10 @@ void show_help (void)
center(curwin, 1, 0, attr_title, 0, 0, 1, _(" How to Play "));
center(curwin, 2, 0, attr_normal, attr_highlight, 0, 1,
/* TRANSLATORS: The first %d is the current page number,
the second is the number of pages your help text takes
(6, in English). You can replace the second %d with a
fixed word, if you like. */
_("Page %d of %d"), curpage + 1, numpages);
wmove(curwin, 4, 2);

View File

@ -236,6 +236,10 @@ selection_t get_move (void)
box(curwin, 0, 0);
left(curwin, 2, 2, attr_normal, attr_keycode, 0, 1,
/* TRANSLATORS: Each label may be up to 37 characters wide
(for <1> and <2>) or 38 characters wide (for <3> and
<CTRL><C>). The sequences "^{" and "^}" change the
character rendition (attributes) and take up no space. */
_("^{<1>^} Display stock portfolio"));
left(curwin, 3, 2, attr_normal, attr_keycode, 0, 1,
_("^{<2>^} Declare bankruptcy"));
@ -246,6 +250,11 @@ selection_t get_move (void)
right(curwin, 1, getmaxx(curwin) / 2, attr_normal, attr_keycode,
attr_choice, 1,
/* TRANSLATORS: The maximum column width is 38 characters,
including the trailing space. The sequences "^{", "^}",
"^[" and "^]" do not take up any room. "%lc" takes up
either one or two columns, depending on the appropriate
"output|GameMoves" string in the current PO file. */
_("Select move [^[%lc^]-^[%lc^]/^{1^}-^{3^}/^{<CTRL><C>^}]: "),
(wint_t) PRINTABLE_GAME_MOVE(0),
(wint_t) PRINTABLE_GAME_MOVE(NUMBER_MOVES - 1));
@ -276,9 +285,13 @@ selection_t get_move (void)
curs_set(CURS_OFF);
left(curwin, 1, getmaxx(curwin) / 2, attr_normal,
attr_choice, 0, 1,
/* TRANSLATORS: "Move" refers to the choice of
moves made by the current player (out of a
selection of 20 moves). */
/* TRANSLATORS: A game usually consists of
DEFAULT_MAX_TURN (50) turns. On each
turn, the computer randomly selects
NUMBER_MOVES (20) moves (positions on the
map); each player selects just one move
per turn. "Move" refers to the player's
choice. */
_("Move ^{%lc^}"),
(wint_t) PRINTABLE_GAME_MOVE(i));
@ -782,9 +795,9 @@ void merge_companies (map_val_t a, map_val_t b)
assert(bb >= 0 && bb < MAX_COMPANIES);
double val_aa = company[aa].share_price * company[aa].stock_issued *
company[aa].share_return;
(1.0 + company[aa].share_return);
double val_bb = company[bb].share_price * company[bb].stock_issued *
company[bb].share_return;
(1.0 + company[bb].share_return);
double bonus;
long int old_stock, new_stock, total_new;
@ -887,9 +900,9 @@ void merge_companies (map_val_t a, map_val_t b)
new_stock = (double) old_stock * MERGE_STOCK_RATIO;
total_new += new_stock;
bonus = (company[bb].stock_issued == 0) ? 0.0 :
10.0 * ((double) player[i].stock_owned[bb]
/ company[bb].stock_issued) * company[bb].share_price;
bonus = (company[bb].stock_issued == 0) ? 0.0 : MERGE_BONUS_RATE
* ((double) player[i].stock_owned[bb]
/ company[bb].stock_issued) * company[bb].share_price;
player[i].stock_owned[aa] += new_stock;
player[i].stock_owned[bb] = 0;
@ -917,7 +930,9 @@ void merge_companies (map_val_t a, map_val_t b)
// Adjust the company records appropriately
company[aa].stock_issued += total_new;
company[aa].max_stock += total_new;
company[aa].share_price += company[bb].share_price / (randf() + 1.5);
company[aa].share_price += company[bb].share_price
* (randf() * (MERGE_PRICE_ADJUST_MAX - MERGE_PRICE_ADJUST_MIN)
+ MERGE_PRICE_ADJUST_MIN);
company[bb].stock_issued = 0;
company[bb].max_stock = 0;
@ -997,11 +1012,22 @@ void inc_share_price (int num, double inc)
{
assert(num >= 0 && num < MAX_COMPANIES);
company[num].share_price += inc * (1.0 + randf() * SHARE_PRICE_INC_EXTRA);
company[num].max_stock += inc / (randf() * 10.0 + 5.0);
company[num].share_price += inc * (randf()
* (PRICE_INC_ADJUST_MAX - PRICE_INC_ADJUST_MIN) + PRICE_INC_ADJUST_MIN);
company[num].max_stock += inc * (randf()
* (MAX_STOCK_RATIO_MAX - MAX_STOCK_RATIO_MIN) + MAX_STOCK_RATIO_MIN);
if (randf() < GROWING_RETURN_CHANGE) {
company[num].share_return *= randf() + GROWING_RETURN_INC;
if (randf() < CHANGE_RETURN_GROWING) {
double change = randf() * GROWING_MAX_CHANGE;
if (randf() < DEC_RETURN_GROWING) {
change = -change;
}
company[num].share_return += change;
if ( company[num].share_return > MAX_COMPANY_RETURN
|| company[num].share_return < MIN_COMPANY_RETURN) {
company[num].share_return -= 2.0 * change;
}
}
}
@ -1018,7 +1044,7 @@ void adjust_values (void)
if (randf() > (1.0 - COMPANY_BANKRUPTCY)) {
which = randi(MAX_COMPANIES);
if (company[which].on_map) {
if (company[which].on_map && company[which].share_return <= 0.0) {
if (randf() < ALL_ASSETS_TAKEN) {
txdlgbox(MAX_DLG_LINES, 60, 6, WCENTER, attr_error_window,
attr_error_title, attr_error_highlight,
@ -1041,7 +1067,8 @@ void adjust_values (void)
for (int i = 0; i < number_players; i++) {
if (player[i].in_game) {
player[i].cash += player[i].stock_owned[which] * rate;
player[i].cash += player[i].stock_owned[which]
* company[which].share_price * rate;
}
}
@ -1123,19 +1150,21 @@ void adjust_values (void)
if (randf() < CHANGE_COMPANY_RETURN) {
which = randi(MAX_COMPANIES);
if (company[which].on_map) {
company[which].share_return *= randf() + COMPANY_RETURN_INC;
}
}
double change = randf() * RETURN_MAX_CHANGE;
if (randf() < DEC_COMPANY_RETURN) {
change = -change;
}
// Make sure that a company's return is not too large
for (int i = 0; i < MAX_COMPANIES; i++) {
if (company[i].on_map && company[i].share_return > MAX_COMPANY_RETURN) {
company[i].share_return /= randf() + RETURN_DIVIDER;
company[which].share_return += change;
if ( company[which].share_return > MAX_COMPANY_RETURN
|| company[which].share_return < MIN_COMPANY_RETURN) {
company[which].share_return -= 2.0 * change;
}
}
}
// Increase or decrease share price
if (randf() < INC_SHARE_PRICE) {
if (randf() < CHANGE_SHARE_PRICE) {
which = randi(MAX_COMPANIES);
if (company[which].on_map) {
double change = randf() * company[which].share_price
@ -1159,12 +1188,35 @@ void adjust_values (void)
}
}
// Has the player lost money due to negative share returns?
if (player[current_player].cash < 0.0) {
double borrowed = -player[current_player].cash;
txdlgbox(MAX_DLG_LINES, 60, 7, WCENTER, attr_error_window,
attr_error_title, attr_error_highlight, 0, 0,
attr_error_waitforkey, _(" Interstellar Trading Bank "),
/* xgettext:c-format */
_("You were forced to borrow %N\n"
"to cover losses from company shares."),
borrowed);
txrefresh();
player[current_player].cash = 0.0;
player[current_player].debt += borrowed;
}
// Change the interest rate
if (randf() < CHANGE_INTEREST_RATE) {
interest_rate *= randf() + INTEREST_RATE_INC;
}
if (interest_rate > MAX_INTEREST_RATE) {
interest_rate /= randf() + INTEREST_RATE_DIVIDER;
double change = randf() * INTEREST_MAX_CHANGE;
if (randf() < DEC_INTEREST_RATE) {
change = -change;
}
interest_rate += change;
if ( interest_rate > MAX_INTEREST_RATE
|| interest_rate < MIN_INTEREST_RATE) {
interest_rate -= 2.0 * change;
}
}
// Calculate current player's debt
@ -1194,7 +1246,7 @@ void adjust_values (void)
}
// Shall we declare them bankrupt?
if (total_value(current_player) <= 0.0 && randf() < PROB_BANKRUPTCY) {
if (total_value(current_player) <= 0.0 && randf() < MAKE_BANKRUPT) {
bankrupt_player(true);
}
}