diff --git a/Makefile.in b/Makefile.in index 88f7bcb..f2731ed 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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; \ diff --git a/aclocal.m4 b/aclocal.m4 index f608c6d..c406863 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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]))]) diff --git a/config.h.in b/config.h.in index c08c7c4..1386e40 100644 --- a/config.h.in +++ b/config.h.in @@ -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 diff --git a/configure b/configure index 4633fa0..843c23f 100755 --- a/configure +++ b/configure @@ -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 . # @@ -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 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 + 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\\" diff --git a/doc/Makefile.in b/doc/Makefile.in index a974bc6..082fa26 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -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"; \ diff --git a/lib/Makefile.am b/lib/Makefile.am index f9a16e9..5d038c5 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -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' \ diff --git a/lib/Makefile.in b/lib/Makefile.in index 8df00e6..b56c136 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -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' \ diff --git a/lib/locale.in.h b/lib/locale.in.h index a97e3e7..7747902 100644 --- a/lib/locale.in.h +++ b/lib/locale.in.h @@ -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 + */ + + /* 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 + */ + + /* 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) diff --git a/lib/stdio.in.h b/lib/stdio.in.h index 9dc7c4a..4d3f0bb 100644 --- a/lib/stdio.in.h +++ b/lib/stdio.in.h @@ -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 diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index e92a614..b546133 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -94,6 +94,14 @@ struct random_data # include #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); diff --git a/lib/string.in.h b/lib/string.in.h index cad18db..f8d7520 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -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 *)); diff --git a/lib/unistr.in.h b/lib/unistr.in.h index 479075e..5cda3f5 100644 --- a/lib/unistr.in.h +++ b/lib/unistr.in.h @@ -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. */ diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h index b1235e6..e642b7a 100644 --- a/lib/unitypes.in.h +++ b/lib/unitypes.in.h @@ -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 */ diff --git a/lib/wchar.in.h b/lib/wchar.in.h index 4e92a77..f9bc30c 100644 --- a/lib/wchar.in.h +++ b/lib/wchar.in.h @@ -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 diff --git a/m4/Makefile.in b/m4/Makefile.in index 11b61fa..3b0a2cb 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -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@ diff --git a/m4/locale_h.m4 b/m4/locale_h.m4 index 4289587..fb72e4e 100644 --- a/m4/locale_h.m4 +++ b/m4/locale_h.m4 @@ -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 to define locale_t. + dnl Persuade glibc to define locale_t and the int_p_*, int_n_* + dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If is replaced, then 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 - 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 + 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 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]) ]) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index 1973e8d..b03393b 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -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 - ]], [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]) diff --git a/m4/warn-on-use.m4 b/m4/warn-on-use.m4 index 03b113c..a77802e 100644 --- a/m4/warn-on-use.m4 +++ b/m4/warn-on-use.m4 @@ -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], [ diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000..b7f6f2b Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 868fce4..9389f90 100644 --- a/po/de.po +++ b/po/de.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-31 09:48+1100\n" "Last-Translator: Philipp Thomas \n" "Language-Team: German \n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo index 7dfa951..4d38ece 100644 Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ diff --git a/po/en@quot.po b/po/en@quot.po index af306ee..ca9d039 100644 --- a/po/en@quot.po +++ b/po/en@quot.po @@ -27,10 +27,10 @@ # 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" -"PO-Revision-Date: 2012-03-16 13:23+1100\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" +"PO-Revision-Date: 2012-04-14 14:31+1000\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@quot\n" @@ -172,37 +172,38 @@ msgstr "Star Traders home page: <%s>.\n" #. 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 "Altair Starways" -#: src/globals.c:47 +#: src/globals.c:48 msgid "Betelgeuse, Ltd" msgstr "Betelgeuse, Ltd" -#: src/globals.c:48 +#: src/globals.c:49 msgid "Capella Freight Co" msgstr "Capella Freight Co" -#: src/globals.c:49 +#: src/globals.c:50 msgid "Denebola Shippers" msgstr "Denebola Shippers" -#: src/globals.c:50 +#: src/globals.c:51 msgid "Eridani Expediters" msgstr "Eridani Expediters" -#: src/globals.c:51 +#: src/globals.c:52 msgid "Fornax Express" msgstr "Fornax Express" -#: src/globals.c:52 +#: src/globals.c:53 msgid "Gemeni Inc" msgstr "Gemeni Inc" -#: src/globals.c:53 +#: src/globals.c:54 msgid "Hercules and Co" msgstr "Hercules and Co" @@ -214,7 +215,7 @@ msgstr "Hercules and Co" #. 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 "ABCDEFGH|input|Companies" @@ -225,7 +226,7 @@ msgstr "ABCDEFGH|input|Companies" #. 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 "ABCDEFGHIJKLMNOPQRST|input|GameMoves" @@ -236,7 +237,7 @@ msgstr "ABCDEFGHIJKLMNOPQRST|input|GameMoves" #. 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 ".+*ABCDEFGH|output|MapVals" @@ -246,7 +247,7 @@ msgstr ".+*ABCDEFGH|output|MapVals" #. 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 "abcdefghijklmnopqrst|output|GameMoves" @@ -255,35 +256,35 @@ msgstr "abcdefghijklmnopqrst|output|GameMoves" #. 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 "1st" -#: src/globals.c:114 +#: src/globals.c:115 msgid "2nd" msgstr "2nd" -#: src/globals.c:115 +#: src/globals.c:116 msgid "3rd" msgstr "3rd" -#: src/globals.c:116 +#: src/globals.c:117 msgid "4th" msgstr "4th" -#: src/globals.c:117 +#: src/globals.c:118 msgid "5th" msgstr "5th" -#: src/globals.c:118 +#: src/globals.c:119 msgid "6th" msgstr "6th" -#: src/globals.c:119 +#: src/globals.c:120 msgid "7th" msgstr "7th" -#: src/globals.c:120 +#: src/globals.c:121 msgid "8th" msgstr "8th" @@ -293,6 +294,7 @@ msgid "Loading game %d... " msgstr "Loading game %d... " #: src/game.c:226 +#, c-format msgid " First Player " msgstr " First Player " @@ -319,19 +321,23 @@ msgctxt "input|ContinueGame" msgid "Cc" msgstr "Cc" -#: 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 ^{^} to cancel: " msgstr "Enter game number [^{1^}-^{9^}] or ^{^} to cancel: " #: src/game.c:406 +#, c-format msgid "Please enter your name: " msgstr "Please enter your name: " #: src/game.c:425 +#, c-format msgid "Do you need any instructions? [^{Y^}/^{N^}] " msgstr "Do you need any instructions? [^{Y^}/^{N^}] " #: src/game.c:443 +#, c-format msgid " Enter Player Names " msgstr " Enter Player Names " @@ -341,10 +347,12 @@ msgid "Player %d: " msgstr "Player %d: " #: src/game.c:529 +#, c-format msgid "Does any player need instructions? [^{Y^}/^{N^}] " msgstr "Does any player need instructions? [^{Y^}/^{N^}] " #: src/game.c:563 +#, c-format msgid " Game Over " msgstr " Game Over " @@ -356,6 +364,7 @@ msgstr[0] "The game is over after one turn." msgstr[1] "The game is over after %d turns." #: src/game.c:575 +#, c-format msgid " Total Value " msgstr " Total Value " @@ -383,12 +392,14 @@ msgstr "" "with a value of ^{%N^}." #: src/game.c:597 +#, c-format msgid " Game Winner " msgstr " Game Winner " #. 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 "Player" @@ -413,26 +424,31 @@ msgid " Turn: ^{%d^} " msgstr " Turn: ^{%d^} " #: src/game.c:649 +#, c-format msgid " ^[*** Last Turn ***^] " msgstr " ^[*** Last Turn ***^] " #: src/game.c:693 +#, c-format msgid " Stock Portfolio " msgstr " Stock Portfolio " #. 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 "^[* * * B A N K R U P T * * *^]" #: src/game.c:717 src/exch.c:112 +#, c-format msgid "No companies on the map" msgstr "No companies on the map" #. 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" @@ -462,6 +478,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" @@ -510,96 +527,123 @@ 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 "Total value: " -#: src/game.c:800 src/exch.c:322 +#: src/game.c:800 src/exch.c:324 +#, c-format msgctxt "label" msgid "Current cash: " msgstr "Current cash: " -#: src/game.c:807 src/exch.c:330 +#: src/game.c:807 src/exch.c:332 +#, c-format msgctxt "label" msgid "Current debt: " msgstr "Current debt: " -#: src/game.c:813 src/exch.c:335 +#: src/game.c:813 src/exch.c:337 +#, c-format msgctxt "label" msgid "Interest rate: " msgstr "Interest rate: " -#: 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 +#. ). 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 "^{<1>^} Display stock portfolio" -#: src/move.c:241 +#: src/move.c:245 +#, c-format msgid "^{<2>^} Declare bankruptcy" msgstr "^{<2>^} Declare bankruptcy" -#: src/move.c:243 +#: src/move.c:247 +#, c-format msgid "^{<3>^} Save and end the game" msgstr "^{<3>^} Save and end the game" -#: src/move.c:245 +#: src/move.c:249 +#, c-format msgid "^{^} Quit the game" msgstr "^{^} Quit the game" -#: src/move.c:249 +#. 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^}/^{^}]: " msgstr "Select move [^[%lc^]-^[%lc^]/^{1^}-^{3^}/^{^}]: " -#. 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 "Move ^{%lc^}" -#: src/move.c:303 +#: src/move.c:316 +#, c-format msgid "^{<2>^} (Declare bankruptcy)" msgstr "^{<2>^} (Declare bankruptcy)" -#: src/move.c:312 +#: src/move.c:325 +#, c-format msgid "^{<3>^} (Save and end the game)" msgstr "^{<3>^} (Save and end the game)" -#: src/move.c:333 +#: src/move.c:346 +#, c-format msgid "^{^} (Quit the game)" msgstr "^{^} (Quit the game)" -#: src/move.c:348 +#: src/move.c:361 +#, c-format msgid "Are you sure? [^{Y^}/^{N^}] " msgstr "Are you sure? [^{Y^}/^{N^}] " -#: src/move.c:365 src/move.c:443 +#: src/move.c:378 src/move.c:456 #, c-format msgid "Saving game %d... " msgstr "Saving game %d... " -#: 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 " Bankruptcy Court " #. 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 "%ls has been declared bankrupt by the Interstellar Trading Bank." #. TRANSLATORS: %ls is the player's name. -#: src/move.c:683 +#: src/move.c:696 #, c-format msgid "%ls has declared bankruptcy." msgstr "%ls has declared bankruptcy." -#: src/move.c:751 +#: src/move.c:764 +#, c-format msgid " New Company " msgstr " New Company " -#: src/move.c:752 +#: src/move.c:765 #, c-format msgid "" "A new company has been formed!\n" @@ -608,7 +652,7 @@ msgstr "" "A new company has been formed!\n" "Its name is ^{%ls^}." -#: src/move.c:811 +#: src/move.c:824 #, c-format msgid "" "^{%ls^} has just merged into ^{%ls^}.\n" @@ -617,7 +661,8 @@ msgstr "" "^{%ls^} has just merged into ^{%ls^}.\n" "Please note the following transactions:\n" -#: src/move.c:817 +#: src/move.c:830 +#, c-format msgid " Company Merger " msgstr " Company Merger " @@ -628,14 +673,16 @@ msgstr " Company Merger " #. 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 "Old stock: " #. 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 "New Stock: " @@ -645,7 +692,7 @@ msgstr "New Stock: " #. 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)" @@ -654,7 +701,8 @@ msgstr "Bonus (%ls)" #. 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 "Total" @@ -663,7 +711,8 @@ msgstr "Total" #. 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 "New" @@ -671,13 +720,14 @@ msgstr "New" #. 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 "Old" #. 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" @@ -689,7 +739,7 @@ msgstr "" "^{All assets have been taken to repay outstanding loans.^}" #. 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" @@ -708,7 +758,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 "Amount paid per share: " @@ -717,16 +768,27 @@ msgstr "Amount paid per share: " #. 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 "Old share value: " -#: 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 " Interstellar Trading Bank " -#: 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 "" +"You were forced to borrow %N\n" +"to cover losses from company shares." + +#: src/move.c:1234 #, c-format msgid "" "Your debt has amounted to %N!\n" @@ -736,6 +798,7 @@ msgstr "" "^{The Bank has impounded ^}%N^{ from your cash.^}" #: src/exch.c:98 +#, c-format msgid " Interstellar Stock Exchange " msgstr " Interstellar Stock Exchange " @@ -745,6 +808,7 @@ msgstr " Interstellar Stock Exchange " #. 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" @@ -759,6 +823,7 @@ 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" @@ -767,19 +832,25 @@ msgstr "" "Shares\n" "issued" -#: 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 "^{<2>^} Display galaxy map" -#: src/exch.c:186 +#: src/exch.c:188 +#, c-format msgid "^{<3>^} Visit the Trading Bank" msgstr "^{<3>^} Visit the Trading Bank" -#: src/exch.c:188 +#: src/exch.c:190 +#, c-format msgid "^{<4>^} Exit the Stock Exchange" msgstr "^{<4>^} Exit the Stock Exchange" -#: src/exch.c:191 +#: src/exch.c:193 +#, c-format msgid "Enter selection [^[Company letter^]/^{1^}-^{4^}]: " msgstr "Enter selection [^[Company letter^]/^{1^}-^{4^}]: " @@ -792,7 +863,8 @@ msgstr "Enter selection [^[Company letter^]/^{1^}-^{4^}]: " #. #. 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 "Credit limit: " @@ -801,56 +873,68 @@ msgstr "Credit limit: " #. 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 "^{<1>^} Borrow money " -#: src/exch.c:366 +#: src/exch.c:368 +#, c-format msgid "^{<2>^} Repay debt " msgstr "^{<2>^} Repay debt " -#: src/exch.c:368 +#: src/exch.c:370 +#, c-format msgid "^{<3>^} Exit from the Bank" msgstr "^{<3>^} Exit from the Bank" -#: src/exch.c:371 +#: src/exch.c:373 +#, c-format msgid "Enter selection [^{1^}-^{3^}]: " msgstr "Enter selection [^{1^}-^{3^}]: " -#: src/exch.c:424 +#: src/exch.c:426 +#, c-format msgid " Insufficient Credit Limit " msgstr " Insufficient Credit Limit " -#: src/exch.c:425 +#: src/exch.c:427 +#, c-format msgid "The Bank will not lend you any more money." msgstr "The Bank will not lend you any more money." -#: src/exch.c:445 +#: src/exch.c:447 +#, c-format msgid "How much do you wish to borrow? " msgstr "How much do you wish to borrow? " -#: src/exch.c:477 +#: src/exch.c:479 +#, c-format msgid " No Debt " msgstr " No Debt " -#: src/exch.c:478 +#: src/exch.c:480 +#, c-format msgid "You have no debt to repay." msgstr "You have no debt to repay." -#: src/exch.c:482 +#: src/exch.c:484 +#, c-format msgid " No Cash " msgstr " No Cash " -#: src/exch.c:483 +#: src/exch.c:485 +#, c-format msgid "You have no cash with which to repay the debt!" msgstr "You have no cash with which to repay the debt!" -#: src/exch.c:503 +#: src/exch.c:505 +#, c-format msgid "How much do you wish to repay? " msgstr "How much do you wish to repay? " #. TRANSLATORS: %ls represents the company name. -#: src/exch.c:579 +#: src/exch.c:581 #, c-format msgid " Stock Transaction in %ls " msgstr " Stock Transaction in %ls " @@ -863,27 +947,31 @@ msgstr " Stock Transaction in %ls " #. 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 "Shares issued: " #. 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 "Shares left: " #. 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 "Price per share: " #. 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 "Return: " @@ -896,56 +984,70 @@ msgstr "Return: " #. 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 "Current holdings: " #. 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 "Percentage owned: " -#: src/exch.c:636 +#: src/exch.c:638 +#, c-format msgctxt "label|Stock B" msgid "Current cash: " msgstr "Current cash: " -#: 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 "^{<1>^} Buy stock from company" -#: src/exch.c:649 +#: src/exch.c:653 +#, c-format msgid "^{<2>^} Sell stock back to company" msgstr "^{<2>^} Sell stock back to company" -#: src/exch.c:651 +#: src/exch.c:655 +#, c-format msgid "^{<3>^} Bid company to issue more shares" msgstr "^{<3>^} Bid company to issue more shares" -#: src/exch.c:653 +#: src/exch.c:657 +#, c-format msgid "^{<4>^} Exit to the Stock Exchange" msgstr "^{<4>^} Exit to the Stock Exchange" -#: src/exch.c:656 +#: src/exch.c:660 +#, c-format msgid "Enter selection [^{1^}-^{4^}]: " msgstr "Enter selection [^{1^}-^{4^}]: " -#: src/exch.c:712 +#: src/exch.c:716 +#, c-format msgid " No Shares Available " msgstr " No Shares Available " -#: src/exch.c:713 +#: src/exch.c:717 +#, c-format msgid "No more shares are available for purchase." msgstr "No more shares are available for purchase." -#: src/exch.c:717 +#: src/exch.c:721 +#, c-format msgid " Insufficient Cash " msgstr " Insufficient Cash " -#: src/exch.c:718 +#: src/exch.c:722 +#, c-format msgid "" "You do not have enough cash\n" "to purchase additional shares." @@ -953,42 +1055,47 @@ msgstr "" "You do not have enough cash\n" "to purchase additional shares." -#: 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] "You can purchase ^{one^} share." msgstr[1] "You can purchase up to ^{%'ld^} shares." -#: src/exch.c:735 +#: src/exch.c:739 +#, c-format msgid "How many shares do you wish to purchase? " msgstr "How many shares do you wish to purchase? " -#: src/exch.c:756 +#: src/exch.c:760 +#, c-format msgid " No Shares " msgstr " No Shares " -#: src/exch.c:757 +#: src/exch.c:761 +#, c-format msgid "You do not have any shares to sell." msgstr "You do not have any shares to sell." -#: 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] "You can sell ^{one^} share." msgstr[1] "You can sell up to ^{%'ld^} shares." -#: src/exch.c:770 +#: src/exch.c:774 +#, c-format msgid "How many shares do you wish to sell? " msgstr "How many shares do you wish to sell? " -#: src/exch.c:798 +#: src/exch.c:802 +#, c-format msgid " No Shares Issued " msgstr " No Shares Issued " #. TRANSLATORS: %ls represents the company name. -#: src/exch.c:800 +#: src/exch.c:804 #, c-format msgid "" "%ls has refused\n" @@ -997,12 +1104,13 @@ msgstr "" "%ls has refused\n" "to issue more shares." -#: src/exch.c:805 +#: src/exch.c:809 +#, c-format msgid " Shares Issued " msgstr " Shares Issued " #. TRANSLATORS: %ls represents the company name. -#: src/exch.c:807 +#: src/exch.c:811 #, c-format msgid "" "%ls has issued\n" @@ -1048,6 +1156,7 @@ msgid "%s: could not convert string" msgstr "%s: could not convert string" #: src/fileio.c:255 +#, c-format msgid " Game Not Found " msgstr " Game Not Found " @@ -1057,6 +1166,7 @@ msgid "Game %d has not been saved to disk." msgstr "Game %d has not been saved to disk." #: src/fileio.c:263 +#, c-format msgid " Game Not Loaded " msgstr " Game Not Loaded " @@ -1107,6 +1217,7 @@ msgid "%s: illegal field on line %d" msgstr "%s: illegal field on line %d" #: src/fileio.c:466 src/fileio.c:487 +#, c-format msgid " Game Not Saved " msgstr " Game Not Saved " @@ -1192,7 +1303,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" @@ -1228,7 +1349,7 @@ msgstr "" " ^e ~. ~. ~. ~. ~. ~. ~. ^s~*^e ~. ^N\n" " ^e ~. ~. ~. ~. ^s~*^e ~. ~. ~. ~. ^N\n" -#: 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" @@ -1262,7 +1383,7 @@ msgstr "" "will set up an ^Boutpost^N, not belonging to any company. Thus, if move ^k~3^N is\n" "selected on the above map, a ^o ~+ ^N would be placed at that position.\n" -#: 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" @@ -1296,7 +1417,7 @@ msgstr "" " ^e ~. ^k~2^e ~. ~. ^k~4^e ~. ~. ^s~*^e ^c~B^e ^N\n" " ^e ~. ~. ~. ~. ^s~*^e ~. ~. ~. ^k~8^e ^N\n" -#: 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" @@ -1330,7 +1451,7 @@ msgstr "" "more valuable: the company's share price will increase by a greater amount\n" "than it would for outposts not next to stars.\n" -#: 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" @@ -1366,7 +1487,7 @@ msgstr "" "proportional to the amount owned in the old company. As well, a cash bonus\n" "is also paid, proportional to the percentage of the old company owned.\n" -#: 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" @@ -1402,27 +1523,32 @@ msgstr "" "The ^Bwinner of the game^N is the person with the greatest net worth (total\n" "value of cash, stock and debt). ^HGood luck^N and may the best person win!\n" -#: src/help.c:215 -msgid "@ Help text, page 7" -msgstr "@ Help text, page 7" +#: src/help.c:225 +msgid "@ Help text, page 7\n" +msgstr "@ Help text, page 7\n" -#: src/help.c:216 -msgid "@ Help text, page 8" -msgstr "@ Help text, page 8" +#: src/help.c:226 +msgid "@ Help text, page 8\n" +msgstr "@ Help text, page 8\n" -#: src/help.c:217 -msgid "@ Help text, page 9" -msgstr "@ Help text, page 9" +#: src/help.c:227 +msgid "@ Help text, page 9\n" +msgstr "@ Help text, page 9\n" -#: src/help.c:218 -msgid "@ Help text, page 10" -msgstr "@ Help text, page 10" +#: src/help.c:228 +msgid "@ Help text, page 10\n" +msgstr "@ Help text, page 10\n" -#: src/help.c:270 +#: src/help.c:280 +#, c-format msgid " How to Play " msgstr " How to Play " -#: 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 "Page %d of %d" @@ -1430,7 +1556,8 @@ msgstr "Page %d of %d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:473 src/intf.c:3035 +#: src/help.c:487 src/intf.c:3035 +#, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1440,7 +1567,8 @@ msgstr "[ Press to continue ] " #. , and almost any other key instead of #. (other than , , , , #. or <\>). -#: src/help.c:480 +#: src/help.c:494 +#, c-format msgid "[ Press to continue or for the previous page ] " msgstr "[ Press to continue or for the previous page ] " @@ -1460,10 +1588,12 @@ msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" #: src/intf.c:610 +#, c-format msgid "Star Traders" msgstr "Star Traders" #: src/intf.c:1265 +#, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" @@ -1524,6 +1654,7 @@ msgid ": " msgstr ": " #: src/utils.c:238 +#, c-format msgid "out of memory" msgstr "out of memory" @@ -1533,6 +1664,7 @@ msgid "xmbstowcs: `%s'" msgstr "xmbstowcs: ‘%s’" #: src/utils.c:611 +#, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" diff --git a/po/en_AU.gmo b/po/en_AU.gmo index 0d297dd..fcfbd11 100644 Binary files a/po/en_AU.gmo and b/po/en_AU.gmo differ diff --git a/po/en_AU.po b/po/en_AU.po index 2a07b76..57d2f28 100644 --- a/po/en_AU.po +++ b/po/en_AU.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-27 08:01+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Australian)\n" diff --git a/po/en_CA.gmo b/po/en_CA.gmo index da09042..1d8dc96 100644 Binary files a/po/en_CA.gmo and b/po/en_CA.gmo differ diff --git a/po/en_CA.po b/po/en_CA.po index 713f311..4fd5dc1 100644 --- a/po/en_CA.po +++ b/po/en_CA.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-27 08:02+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Canadian)\n" diff --git a/po/en_GB.gmo b/po/en_GB.gmo index 9934aea..b25dd79 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po index df86696..78ef08c 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-27 08:02+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (British)\n" diff --git a/po/en_US.gmo b/po/en_US.gmo index 534c332..75861b0 100644 Binary files a/po/en_US.gmo and b/po/en_US.gmo differ diff --git a/po/en_US.po b/po/en_US.po index eeb50ca..4d6f750 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-27 08:02+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English\n" diff --git a/po/fi.gmo b/po/fi.gmo new file mode 100644 index 0000000..005067b Binary files /dev/null and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index ee69aea..4b3088a 100644 --- a/po/fi.po +++ b/po/fi.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-04-04 17:20+1000\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000..d73f9e2 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 1997606..198c6c0 100644 --- a/po/fr.po +++ b/po/fr.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-30 07:15+1100\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" diff --git a/po/hr.gmo b/po/hr.gmo new file mode 100644 index 0000000..a883730 Binary files /dev/null and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po index d3097f6..62a5944 100644 --- a/po/hr.po +++ b/po/hr.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-04-14 12:08+1000\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" diff --git a/po/ru.gmo b/po/ru.gmo index a81810b..d97bf25 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 76bb432..2f4b0ff 100644 --- a/po/ru.po +++ b/po/ru.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: trader 7.4-pre1\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2012-04-14 14:02+1000\n" +"POT-Creation-Date: 2012-04-14 14:31+1000\n" "PO-Revision-Date: 2012-03-30 07:15+1100\n" "Last-Translator: Pavel Maryanov \n" "Language-Team: Russian \n" diff --git a/po/trader.pot b/po/trader.pot index e4b197c..b887070 100644 --- a/po/trader.pot +++ b/po/trader.pot @@ -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 \n" "Language-Team: LANGUAGE \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 ^{^} 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 +#. ). 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 "^{^} Quit the game" -msgstr "" - #: src/move.c:249 #, c-format +msgid "^{^} 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^}/^{^}]: " 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 "^{^} (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 key?" :-) -#: src/help.c:473 src/intf.c:3035 +#: src/help.c:487 src/intf.c:3035 +#, c-format msgid "[ Press to continue ] " msgstr "" @@ -1257,7 +1382,8 @@ msgstr "" #. , and almost any other key instead of #. (other than , , , , #. or <\>). -#: src/help.c:480 +#: src/help.c:494 +#, c-format msgid "[ Press to continue or 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 "" diff --git a/src/Makefile.in b/src/Makefile.in index 1561cf8..55bf820 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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; \