diff --git a/COPYING b/COPYING index 13ffd26..7e56428 100644 --- a/COPYING +++ b/COPYING @@ -4,7 +4,7 @@ Star Traders: A Game of Interstellar Trading ============================================ -**Copyright © 1990–2021, John Zaitseff.** +**Copyright © 1990–2022, John Zaitseff.** The Star Traders game is free software that is distributed under the terms of the GNU General Public License. The actual copyright on this diff --git a/INSTALL b/INSTALL index 0ae6151..593634a 100644 --- a/INSTALL +++ b/INSTALL @@ -29,8 +29,8 @@ Star Traders requires the following components for successful compilation and installation: 1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as - C99). Any recent version of the GNU Compiler Collection (GCC) or the - Clang LLVM Compiler is more than adequate. + C99) or later. Any recent version of the GNU Compiler Collection + (GCC) or the Clang LLVM Compiler is more than adequate. 2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX) or to the Open Group Single UNIX Specification version 4 or later. @@ -143,11 +143,11 @@ This feature requires GNU Make and allows you to keep the source code tree from being modified by the compilation process. To use this option, create a separate `build` directory, then run ``configure``. For example, if you placed the Star Traders source code tree in -`$HOME/src/trader-7.16`, you could run something like:: +`$HOME/src/trader-7.17`, you could run something like:: - mkdir $HOME/build/trader-build-7.16 - cd $HOME/build/trader-build-7.16 - $HOME/src/trader-7.16/configure + mkdir $HOME/build/trader-build-7.17 + cd $HOME/build/trader-build-7.17 + $HOME/src/trader-7.17/configure Once again, the `Autoconf manual`__ describes these options (and many others). @@ -205,42 +205,48 @@ Tested Systems The following operating systems and compilers have been successfully tested with this version of Star Traders: -===================== ====== ===== ======================== -Linux distribution Arch Glibc Compiler -===================== ====== ===== ======================== -Debian GNU/Linux Sid x86_64 2.31 GNU C Compiler 10.2.1 -Debian GNU/Linux Sid x86_64 2.31 Clang (LLVM) 11.0.1 -Debian GNU/Linux Sid i686 2.31 GNU C Compiler 10.2.1 -Debian GNU/Linux Sid i686 2.31 Clang (LLVM) 11.0.1 -Debian GNU/Linux 10.3 x86_64 2.28 GNU C Compiler 8.3.0 -Debian GNU/Linux 10.3 x86_64 2.28 Clang (LLVM) 7.0.1 -Ubuntu 20.10 x86_64 2.32 GNU C Compiler 10.2.0 -Ubuntu 20.10 x86_64 2.32 Clang (LLVM) 11.0.0 -Ubuntu 20.10 x86_64 2.32 NVIDIA HPC SDK 20.11 -Ubuntu 20.04 LTS x86_64 2.31 GNU C Compiler 9.3.0 -Ubuntu 20.04 LTS x86_64 2.31 Clang (LLVM) 10.0.0 -Ubuntu 18.04 LTS x86_64 2.27 GNU C Compiler 7.5.0 -Fedora 33 x86_64 2.32 GNU C Compiler 10.2.1 -CentOS 8.3 x86_64 2.28 GNU C Compiler 8.3.1 -CentOS 8.3 x86_64 2.28 Intel C/C++ 19.1.2.254 -CentOS 7.9 x86_64 2.17 GNU C Compiler 4.8.5 -OpenSUSE Leap 15.2 x86_64 2.26 GNU C Compiler 7.5.0 -===================== ====== ===== ======================== +==================================== ====== ===== ======================== +Linux distribution Arch Glibc Compiler +==================================== ====== ===== ======================== +Debian GNU/Linux Unstable (Sid) x86_64 2.33 GNU C Compiler 12.1.0 +Debian GNU/Linux Unstable (Sid) x86_64 2.33 Clang (LLVM) 14.0.6 +Debian GNU/Linux 11.4 (Bullseye) x86_64 2.31 GNU C Compiler 10.2.1 +Debian GNU/Linux 11.4 (Bullseye) x86_64 2.31 Clang (LLVM) 11.0.1 +Ubuntu 22.04.1 LTS (Jammy Jellyfish) x86_64 2.35 GNU C Compiler 11.2.0 +Ubuntu 22.04.1 LTS (Jammy Jellyfish) x86_64 2.35 Clang (LLVM) 14.0.0 +Ubuntu 22.04.1 LTS (Jammy Jellyfish) x86_64 2.35 NVIDIA HPC SDK 22.7 +Ubuntu 20.04.4 LTS (Focal Fossa) x86_64 2.31 GNU C Compiler 9.4.0 +Ubuntu 18.04.6 LTS (Bionic Beaver) x86_64 2.27 GNU C Compiler 7.5.0 +Fedora Linux 36 x86_64 2.35 GNU C Compiler 12.1.1 +Red Hat Enterprise Linux 9.0 x86_64 2.34 GNU C Compiler 11.2.1 +Red Hat Enterprise Linux 8.6 x86_64 2.28 GNU C Compiler 8.5.0 +Red Hat Enterprise Linux 7.9 x86_64 2.17 GNU C Compiler 4.8.5 +Red Hat Enterprise Linux 6.10 x86_64 2.12 GNU C Compiler 4.4.7 +CentOS Stream 9 x86_64 2.34 GNU C Compiler 11.3.1 +CentOS Stream 8 x86_64 2.28 GNU C Compiler 8.5.0 +CentOS 7.9.2009 x86_64 2.17 GNU C Compiler 4.8.5 +Rocky Linux 8.6 x86_64 2.28 GNU C Compiler 8.5.0 +Rocky Linux 8.6 x86_64 2.28 Intel C Classic 2021.6.0 +Rocky Linux 8.6 x86_64 2.28 Intel oneAPI C 2022.1.0 +openSUSE Leap 15.4 x86_64 2.31 GNU C Compiler 7.5.0 +Arch Linux (2022.08.01) x86_64 2.36 GNU C Compiler 12.1.1 +==================================== ====== ===== ======================== -======================= ====== ============================ ============ -Operating system Arch Compiler Notes -======================= ====== ============================ ============ -FreeBSD 12.2 x86_64 Clang (LLVM) 10.0.1 [#freebsd1]_ -NetBSD 9.1 x86_64 GNU C Compiler 7.5.0 [#netbsd1]_ -macOS 11.0 x86_64 Apple Clang (LLVM) 11.0.0 [#macos1]_ -macOS 11.0 x86_64 Apple Clang (LLVM) 11.0.0 [#macos2]_ -Solaris 11.4 (x86_64) x86_64 GNU C Compiler 7.3.0 [#solaris1]_ -Solaris 11.4 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris2]_ -Solaris 11.4 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_ -Haiku R1/beta2 x86_64 GNU C Compiler 8.3.0 -Cygwin 3.1.7 (Win10) x86_64 GNU C Compiler 10.2.0 -Cygwin 3.1.7 (Win7 SP1) i686 GNU C Compiler 10.2.0 -======================= ====== ============================ ============ +========================= ====== ============================ ============ +Operating system Arch Compiler Notes +========================= ====== ============================ ============ +FreeBSD 13.1 x86_64 Clang (LLVM) 13.0.0 [#freebsd1]_ +NetBSD 9.2 x86_64 GNU C Compiler 7.5.0 [#netbsd1]_ +macOS 12.5 x86_64 Apple Clang (LLVM) 13.1.6 [#macos1]_ +macOS 12.5 x86_64 Apple Clang (LLVM) 13.1.6 [#macos2]_ +Solaris 11.4.42 (x86_64) x86_64 GNU C Compiler 11.2.0 [#solaris1]_ +Solaris 11.4.42 (x86_64) i386 GNU C Compiler 11.2.0 [#solaris2]_ +Solaris 11.4.42 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_ +Solaris 11.4.42 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris4]_ +Haiku R1/beta3 x86_64 GNU C Compiler 11.2.0 +Cygwin 3.3.5 (Windows 10) x86_64 GNU C Compiler 11.3.0 +Cygwin 3.3.5 (Windows 7) i686 GNU C Compiler 11.3.0 +========================= ====== ============================ ============ .. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``, ``gettext-tools`` and ``libiconv`` binary packages installed with @@ -276,13 +282,29 @@ Cygwin 3.1.7 (Win7 SP1) i686 GNU C Compiler 10.2.0 ./configure --with-libintl-prefix=/usr/local/opt/gettext \ PKG_CONFIG_PATH=/usr/local/opt/ncurses/lib/pkgconfig -.. [#solaris1] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses`` +.. [#solaris1] Solaris, + using:: -.. [#solaris2] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses - CC='/opt/developerstudio12.6/bin/cc'`` + export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig + ./configure CC="gcc -m64" -.. [#solaris3] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses - CC='/opt/developerstudio12.6/bin/cc -m64'`` +.. [#solaris2] Solaris, + using:: + + export PKG_CONFIG_PATH=/usr/lib/32/pkgconfig + ./configure CC="gcc -m32" + +.. [#solaris3] Solaris with Oracle Developer Studio, + using:: + + export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig + ./configure CC="/opt/developerstudio12.6/bin/cc -m64" + +.. [#solaris4] Solaris with Oracle Developer Studio, + using:: + + export PKG_CONFIG_PATH=/usr/lib/32/pkgconfig + ./configure CC="/opt/developerstudio12.6/bin/cc -m32" The following systems are known *not* to work at the current time; this list is almost certainly not exhaustive: @@ -290,8 +312,7 @@ list is almost certainly not exhaustive: ================ ====== ==================== ============ Operating system Arch Compiler Notes ================ ====== ==================== ============ -OpenBSD 6.8 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_ -OpenBSD 6.8 x86_64 Clang (LLVM) 10.0.1 [#openbsd1]_ +OpenBSD 7.1 x86_64 Clang (LLVM) 13.0.0 [#openbsd1]_ ================ ====== ==================== ============ .. [#openbsd1] The OpenBSD C library does not include @@ -303,7 +324,7 @@ Git Repository ============== You can always download the latest version of Star Traders directly from -the Git repository on the ZAP Group server:: +the Git repository on The ZAP Group Australia server:: git clone git://git.zap.org.au/data/git/trader.git @@ -313,7 +334,7 @@ repository, however, you will need to update these files yourself. You will need the following additional tools installed on your system to do so: -1. `Autoconf`__ v2.69 or later +1. `Autoconf`__ v2.71 or later 2. `Automake`__ v1.15 or later 3. `pkgconf`__ v0.9.0 or later, or `pkg-config`__ v0.29 or later 4. `GNU Portability Library`__ diff --git a/Makefile.am b/Makefile.am index c1198b5..7d56c2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/NEWS b/NEWS index 2fb5857..5bd6948 100644 --- a/NEWS +++ b/NEWS @@ -12,8 +12,8 @@ money, in order to become the wealthiest player (the winner). The following history is presented in reverse chronological order. If you would like to see a list of detailed changes to this project, you -should browse the `Star Traders Git repository`__ on `The ZAP Group web -server`__. +should browse the `Star Traders Git repository`__ on `The ZAP Group +Australia web server`__. __ https://www.zap.org.au/git-browser/trader.git __ https://www.zap.org.au/ @@ -22,6 +22,24 @@ __ https://www.zap.org.au/ .. contents:: +Version 7.17 (3rd August, 2022) +------------------------------- + +Fixed two TOCTOU (time-of-check / time-of-use) bugs that arose between +checking for the traditional data directory and creating a data directory +later. Also fixed a bug when the ``HOME`` environment variable is empty: +use the current directory instead. + +Updated the Brazilian Portuguese, Norwegian Bokmål, Swedish, French, +Esperanto, Serbian, German and English translations (in that order), with +thanks to Rafael Fontenelle, Johnny A. Solbu, Anders Jonsson, Frédéric +Marchal, Felipe Castro, Мирослав Николић and Roland Illig respectively. + +Updated the minimum version of GNU Autoconf required, giving the option +of compiling with C17 or C11 instead of C99. Updated to the latest +snapshot of the Gnulib GNU Portability Library. + + Version 7.16 (19th January, 2021) --------------------------------- diff --git a/README b/README index 48f9016..9d592f4 100644 --- a/README +++ b/README @@ -55,7 +55,7 @@ Your comments, suggestions, corrections and enhancements are always warmly welcomed! Please send these to: :Postal: | John Zaitseff, - | The ZAP Group, + | The ZAP Group Australia, | Unit 6, 116 Woodburn Road, | Berala, NSW, 2141, | Australia @@ -71,7 +71,7 @@ warmly welcomed! Please send these to: Copyright ========= -**Copyright © 1990–2021, John Zaitseff.** +**Copyright © 1990–2022, John Zaitseff.** Star Traders is free software that is distributed under the terms of the GNU General Public License. You can redistribute it and/or modify it diff --git a/configure.ac b/configure.ac index 1929cfe..a49fd82 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl ********************************************************************* dnl * * dnl * Star Traders: A Game of Interstellar Trading * -dnl * Copyright (C) 1990-2021, John Zaitseff * +dnl * Copyright (C) 1990-2022, John Zaitseff * dnl * * dnl ********************************************************************* dnl @@ -26,11 +26,11 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see https://www.gnu.org/licenses/. -AC_INIT([Star Traders], [7.16], [J.Zaitseff@zap.org.au], [trader], +AC_INIT([Star Traders], [7.17], [J.Zaitseff@zap.org.au], [trader], [https://www.zap.org.au/projects/trader/]) AC_DEFINE([PACKAGE_AUTHOR], ["John Zaitseff"], [Package author]) -AC_PREREQ([2.69]) +AC_PREREQ([2.71]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([src/trader.c]) AC_CONFIG_AUX_DIR([build-aux]) @@ -40,9 +40,8 @@ AM_MAINTAINER_MODE([enable]) AC_CONFIG_LIBOBJ_DIR([lib]) AC_PROG_CC -AC_PROG_CC_C99 - -AS_IF([test "x$ac_cv_prog_cc_c99" = xno], [ +AS_CASE(["$ac_prog_cc_stdc"], + [c17|c11|c99], [], [ AC_MSG_ERROR([requires an ISO/IEC 9899:1999 (C99) compiler]) ]) diff --git a/data/Makefile.am b/data/Makefile.am index 29d8835..aa5cc94 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/data/trader.appdata.xml.in b/data/trader.appdata.xml.in index deb031f..790172c 100644 --- a/data/trader.appdata.xml.in +++ b/data/trader.appdata.xml.in @@ -4,7 +4,7 @@ ************************************************************************* * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************* @@ -33,7 +33,7 @@ warranty.

- trader.svg + trader.svg trader.desktop trader diff --git a/data/trader.desktop.in b/data/trader.desktop.in index 84bd585..4c18007 100644 --- a/data/trader.desktop.in +++ b/data/trader.desktop.in @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/data/trader.svg b/data/trader.svg index 21ff9d7..d6c01e7 100644 --- a/data/trader.svg +++ b/data/trader.svg @@ -11,7 +11,7 @@ ************************************************************************* * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************* diff --git a/doc/Makefile.am b/doc/Makefile.am index 9222ead..542b3c4 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/doc/trader.6 b/doc/trader.6 index 130bf40..c000047 100644 --- a/doc/trader.6 +++ b/doc/trader.6 @@ -1,7 +1,7 @@ .\" ********************************************************************* .\" * * .\" * Star Traders: A Game of Interstellar Trading * -.\" * Copyright (C) 1990-2021, John Zaitseff * +.\" * Copyright (C) 1990-2022, John Zaitseff * .\" * * .\" ********************************************************************* .\" @@ -41,7 +41,7 @@ .if \n[.g] .mso www.tmac .\" .\" ********************************************************************* -.TH TRADER 6 "19th January, 2021" "Unix-like systems" +.TH TRADER 6 "3rd August, 2022" "Unix-like systems" .SH NAME trader \- a game of interstellar trading .\" ********************************************************************* @@ -194,7 +194,7 @@ its message catalogs instead of the compiled-in path; the relevant .TP .IB \(ti/.local/share/trader/game N Star Traders stores saved game files in the \fI.local/share/trader\fP -subdirectory in your home directory (unless overriden by the +subdirectory in your home directory (unless overridden by the \fBXDG_DATA_HOME\fP environment variable). \fIN\fP is a number between \fB1\fP and \fB9\fP inclusive. The game file is scrambled to prevent you or others from casually cheating! @@ -213,7 +213,7 @@ warmly welcomed! Please send these to: .IP Postal: 10n \fBJohn Zaitseff\fP, .br -The ZAP Group, +The ZAP Group Australia, .br Unit 6, 116 Woodburn Road, .br @@ -240,7 +240,7 @@ Australia .PP .\" ********************************************************************* .SH COPYRIGHT -Copyright \(co 1990\-2021, John Zaitseff. +Copyright \(co 1990\-2022, John Zaitseff. .PP \fBStar Traders\fP is free software that is distributed under the terms of the GNU General Public License. You can redistribute it and/or modify diff --git a/lib/.gitignore b/lib/.gitignore index 2292ee1..69e6d40 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -4,12 +4,12 @@ /locale.h /monetary.h /stdio.h +/stdlib.h /string.h +/sys/stat.h +/sys/time.h +/sys/types.h /time.h /unistd.h -/unistr.h -/unitypes.h /wchar.h /wctype.h - -/sys/ diff --git a/lib/unistr/.gitignore b/lib/unistr/.gitignore index c83c013..e69de29 100644 --- a/lib/unistr/.gitignore +++ b/lib/unistr/.gitignore @@ -1 +0,0 @@ -/.dirstamp diff --git a/lib/xopen-source.h b/lib/xopen-source.h index 97d26ff..c31cbbc 100644 --- a/lib/xopen-source.h +++ b/lib/xopen-source.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/m4/.gitignore b/m4/.gitignore index e45e8d0..e69de29 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -1 +0,0 @@ -/gnulib-tool.m4 diff --git a/m4/Makefile.am b/m4/Makefile.am index 3bdbb3c..ccf7ffc 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/m4/ax_compiler_vendor.m4 b/m4/ax_compiler_vendor.m4 index f06e865..039f99d 100644 --- a/m4/ax_compiler_vendor.m4 +++ b/m4/ax_compiler_vendor.m4 @@ -12,10 +12,11 @@ # returned in the cache variable $ax_cv_c_compiler_vendor for C, # $ax_cv_cxx_compiler_vendor for C++ or $ax_cv_fc_compiler_vendor for # (modern) Fortran. The value is one of "intel", "ibm", "pathscale", -# "clang" (LLVM), "cray", "fujitsu", "sdcc", "sx", "portland" (PGI), "gnu" -# (GCC), "sun" (Oracle Developer Studio), "hp", "dec", "borland", -# "comeau", "kai", "lcc", "sgi", "microsoft", "metrowerks", "watcom", -# "tcc" (Tiny CC) or "unknown" (if the compiler cannot be determined). +# "clang" (LLVM), "cray", "fujitsu", "sdcc", "sx", "nvhpc" (NVIDIA HPC +# Compiler), "portland" (PGI), "gnu" (GCC), "sun" (Oracle Developer +# Studio), "hp", "dec", "borland", "comeau", "kai", "lcc", "sgi", +# "microsoft", "metrowerks", "watcom", "tcc" (Tiny CC) or "unknown" (if +# the compiler cannot be determined). # # To check for a Fortran compiler, you must first call AC_FC_PP_SRCEXT # with an appropriate preprocessor-enabled extension. For example: @@ -58,7 +59,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 30 +#serial 32 AC_DEFUN([AX_COMPILER_VENDOR], [dnl AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [dnl @@ -78,6 +79,7 @@ AC_DEFUN([AX_COMPILER_VENDOR], [dnl fujitsu: __FUJITSU sdcc: SDCC,__SDCC sx: _SX + nvhpc: __NVCOMPILER portland: __PGI gnu: __GNUC__ sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95 diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 index f5dd585..ed84135 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -1,8 +1,8 @@ -# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# Copyright (C) 2002-2022 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, diff --git a/m4/xopen-source.m4 b/m4/xopen-source.m4 index fe75a4b..bc7adea 100644 --- a/m4/xopen-source.m4 +++ b/m4/xopen-source.m4 @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/po/LINGUAS b/po/LINGUAS index 33e15ca..f0906ee 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/po/Makevars b/po/Makevars index a68f222..d6928e1 100644 --- a/po/Makevars +++ b/po/Makevars @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/po/POTFILES.in b/po/POTFILES.in index 047de6c..4f78e49 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/po/da.po b/po/da.po index 625bc84..74f62a1 100644 --- a/po/da.po +++ b/po/da.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Danish Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:42+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 04:43+1000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -1250,12 +1250,12 @@ msgstr "%s: gemt med en tegnkodning der ikke er kompatibel" msgid "%s: illegal or missing field on line %d" msgstr "%s: ugyldigt eller manglende felt på linje %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Spil blev ikke gemt " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1266,7 +1266,7 @@ msgstr "" "\n" "^{Mappe %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1677,31 +1677,31 @@ msgctxt "answer" msgid "No" msgstr "Nej" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "ikke nok hukommelse" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: »%s«" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: »%lc«" diff --git a/po/de.po b/po/de.po index a4c5171..f157773 100644 --- a/po/de.po +++ b/po/de.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * German Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * * # ************************************************************************* # @@ -10,14 +10,15 @@ # Contributors: # Philipp Thomas , 2012, 2015, 2017. # Mario Blättermann , 2021. +# Roland Illig , 2022. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 18:48+1100\n" -"Last-Translator: Mario Blättermann \n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 06:21+1000\n" +"Last-Translator: Roland Illig \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -50,8 +51,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders ist ein einfaches Spiel um interstellaren Handel. Das Ziel des Spiels ist es, Firmen zu gründen, Aktien zu kaufen " -"und zu verkaufen, Geld zu leihen und zurück zu zahlen, um der reichste Spieler und damit der Gewinner zu werden." +"Star Traders ist ein einfaches interstellares Handelsspiel, bei dem es darum geht, Unternehmen zu gründen, Aktien zu kaufen und " +"zu verkaufen, Geld zu leihen und zurückzuzahlen, um der reichste Spieler (der Gewinner) zu werden." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1254,12 +1255,12 @@ msgstr "%s: unter einer inkompatiblen Zeichenkodierung abgespeichert" msgid "%s: illegal or missing field on line %d" msgstr "%s: unzulässiges oder fehlendes Feld in Zeile %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Spiel nicht gespeichert " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1270,7 +1271,7 @@ msgstr "" "\n" "^{Verzeichnis %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1677,31 +1678,31 @@ msgctxt "answer" msgid "No" msgstr "Nein" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "Kein freier Speicher mehr vorhanden" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s“" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc“" diff --git a/po/en_AU.po b/po/en_AU.po index 294745b..437f332 100644 --- a/po/en_AU.po +++ b/po/en_AU.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (Australian) Translations for Star Traders * -# * Copyright (C) 1990-2021, John Zaitseff * +# * Copyright (C) 1990-2022, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2021. +# John Zaitseff , 2011-2022. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:47+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:31+1000\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Australian) <(nothing)>\n" "Language: en_AU\n" @@ -48,8 +48,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders is a simple game of interstellar trading, where the object of the game is to create companies, buy and sell shares, " -"borrow and repay money, in order to become the wealthiest player (the winner)." +"Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " +"and repay money, in order to become the wealthiest player (the winner)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1239,12 +1239,12 @@ msgstr "%s: saved under an incompatible character encoding" msgid "%s: illegal or missing field on line %d" msgstr "%s: illegal or missing field on line %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Game Not Saved " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1255,7 +1255,7 @@ msgstr "" "\n" "^{Directory %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1662,31 +1662,31 @@ msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" diff --git a/po/en_CA.po b/po/en_CA.po index 87fb860..8787fd1 100644 --- a/po/en_CA.po +++ b/po/en_CA.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (Canadian) Translations for Star Traders * -# * Copyright (C) 1990-2021, John Zaitseff * +# * Copyright (C) 1990-2022, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2021. +# John Zaitseff , 2011-2022. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:47+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:33+1000\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Canadian) <(nothing)>\n" "Language: en_CA\n" @@ -48,8 +48,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders is a simple game of interstellar trading, where the object of the game is to create companies, buy and sell shares, " -"borrow and repay money, in order to become the wealthiest player (the winner)." +"Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " +"and repay money, in order to become the wealthiest player (the winner)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1239,12 +1239,12 @@ msgstr "%s: saved under an incompatible character encoding" msgid "%s: illegal or missing field on line %d" msgstr "%s: illegal or missing field on line %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Game Not Saved " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1255,7 +1255,7 @@ msgstr "" "\n" "^{Directory %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1662,31 +1662,31 @@ msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" diff --git a/po/en_GB.po b/po/en_GB.po index 0c58a41..ca994e1 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (British) Translations for Star Traders * -# * Copyright (C) 1990-2021, John Zaitseff * +# * Copyright (C) 1990-2022, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2021. +# John Zaitseff , 2011-2022. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:48+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:34+1000\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (British) <(nothing)>\n" "Language: en_GB\n" @@ -48,8 +48,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders is a simple game of interstellar trading, where the object of the game is to create companies, buy and sell shares, " -"borrow and repay money, in order to become the wealthiest player (the winner)." +"Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " +"and repay money, in order to become the wealthiest player (the winner)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1239,12 +1239,12 @@ msgstr "%s: saved under an incompatible character encoding" msgid "%s: illegal or missing field on line %d" msgstr "%s: illegal or missing field on line %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Game Not Saved " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1255,7 +1255,7 @@ msgstr "" "\n" "^{Directory %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1662,31 +1662,31 @@ msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" diff --git a/po/en_US.po b/po/en_US.po index b54b592..995c1e7 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (US) Translations for Star Traders * -# * Copyright (C) 1990-2021, John Zaitseff * +# * Copyright (C) 1990-2022, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2021. +# John Zaitseff , 2011-2022. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:48+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:35+1000\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (US) <(nothing)>\n" "Language: en_US\n" @@ -48,8 +48,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders is a simple game of interstellar trading, where the object of the game is to create companies, buy and sell shares, " -"borrow and repay money, in order to become the wealthiest player (the winner)." +"Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " +"and repay money, in order to become the wealthiest player (the winner)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1239,12 +1239,12 @@ msgstr "%s: saved under an incompatible character encoding" msgid "%s: illegal or missing field on line %d" msgstr "%s: illegal or missing field on line %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Game Not Saved " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1255,7 +1255,7 @@ msgstr "" "\n" "^{Directory %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1662,31 +1662,31 @@ msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" diff --git a/po/eo.po b/po/eo.po index 8738f62..edf4bce 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,22 +1,22 @@ # ************************************************************************* # * * # * Esperanto Translations for Star Traders * -# * Copyright (C) 2013-21, John Zaitseff * -# * Copyright (C) 2013-20, Free Software Foundation, Inc. * +# * Copyright (C) 2013-22, John Zaitseff * +# * Copyright (C) 2013-21, Free Software Foundation, Inc. * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Felipe Castro , 2013, 2016, 2018, 2019, 2020. +# Felipe Castro , 2013, 2016, 2018, 2019, 2020, 2021. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:49+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 06:50+1000\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -240,7 +240,7 @@ msgstr "Herkulo kaj Ko" #. Do not change or translate anything after the vertical line. #: src/globals.c:68 msgid "ABCDEFGH|input|Companies" -msgstr "abcdefgh|input|Companies" +msgstr "ABCDEFGH|input|Companies" #. TRANSLATORS: This string specifies the keycodes used to select a #. game move. There must be exactly 20 characters, one for each @@ -251,7 +251,7 @@ msgstr "abcdefgh|input|Companies" #. the vertical line. #: src/globals.c:80 msgid "ABCDEFGHIJKLMNOPQRST|input|GameMoves" -msgstr "abcdefghijklmnoprstu|input|GameMoves" +msgstr "ABCDEFGHIJKLMNOPQRST|input|GameMoves" #. TRANSLATORS: This string is used to display the galaxy map to #. screen. There must be exactly 11 characters before the ASCII @@ -1246,12 +1246,12 @@ msgstr "%s: konservita sub nekongrua signa enkodigo" msgid "%s: illegal or missing field on line %d" msgstr "%s: malpermesata aŭ mankanta kampo en linio %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Seanco ne konservita " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1262,7 +1262,7 @@ msgstr "" "\n" "^{Dosierujo %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1669,31 +1669,31 @@ msgctxt "answer" msgid "No" msgstr "Ne" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "memoro plenpleniĝas" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: '%s'" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: '%lc'" diff --git a/po/fi.po b/po/fi.po index de75339..e57b66d 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Finnish Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * Copyright (C) 2012, Free Software Foundation, Inc. * # * * # ************************************************************************* @@ -13,10 +13,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:50+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 06:57+1000\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -1250,12 +1250,12 @@ msgstr "%s: tallennettu yhteensopimattomana merkkikoodauksena" msgid "%s: illegal or missing field on line %d" msgstr "%s: virheellinen tai puuttuva kenttä rivillä %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Peliä ei tallennettu " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1266,7 +1266,7 @@ msgstr "" "\n" "^{Hakemisto %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1673,31 +1673,31 @@ msgctxt "answer" msgid "No" msgstr "Ei" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "muisti loppui" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ”%s”" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ”%lc”" diff --git a/po/fr.po b/po/fr.po index 67c6866..22accc4 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,15 +1,15 @@ # ************************************************************************* # * * # * French Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * -# * Copyright (C) 2012-19, Free Software Foundation, Inc. * +# * Copyright (C) 2012-22, John Zaitseff * +# * Copyright (C) 2012-21, Free Software Foundation, Inc. * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Frédéric Marchal , 2012, 2015, 2017, 2019. +# Frédéric Marchal , 2012-2021. # # Attention: ce fichier ne doit pas contenir d'espace insécable car le # programme est compilé avec Ncurses qui n'affiche pas correctement @@ -19,10 +19,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:50+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:04+1000\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -56,8 +56,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders est un simple jeu de commerce interstellaire où l'objectif du jeu est de créer des compagnies, acheter et vendre des " -"parts, emprunter et rembourser de l'argent dans le but de devenir le joueur le plus riche (le gagnant)." +"Star Traders est un simple jeu de commerce interstellaire où l'objectif consiste à créer des sociétés, acheter et vendre des " +"actions, emprunter et rembourser de l'argent afin de devenir le joueur le plus riche (le gagnant)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1253,12 +1253,12 @@ msgstr "%s: enregistré avec un encodage des caractères incompatible" msgid "%s: illegal or missing field on line %d" msgstr "%s: champ illégal ou manquant à la ligne %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Jeu pas enregistré " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1269,7 +1269,7 @@ msgstr "" "\n" "^{Répertoire %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1688,31 +1688,31 @@ msgctxt "answer" msgid "No" msgstr "Non" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "pas assez de mémoire" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: « %s »" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: « %lc »" diff --git a/po/hr.po b/po/hr.po index 34f25b2..f80ffb8 100644 --- a/po/hr.po +++ b/po/hr.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Croatian Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:52+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:08+1000\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -1250,12 +1250,12 @@ msgstr "%s: spremljena s nekompatibilnim kodiranjem znakova" msgid "%s: illegal or missing field on line %d" msgstr "%s: nedozvoljeno ili nedostaje polje u retku %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Igra nije spremljena " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1266,7 +1266,7 @@ msgstr "" "\n" "^{Direktorij %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1673,31 +1673,31 @@ msgctxt "answer" msgid "No" msgstr "Ne" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "nema dovoljno memorije" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s”" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc”" diff --git a/po/hu.po b/po/hu.po index cdf72eb..9da44ff 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Hungarian Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:54+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 04:43+1000\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -1243,12 +1243,12 @@ msgstr "%s: egy nem kompatibilis karakterkódolással lett elmentve" msgid "%s: illegal or missing field on line %d" msgstr "%s: szabálytalan vagy hiányzó mező a(z) %d. sorban" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " A játék nincs elmentve " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1259,7 +1259,7 @@ msgstr "" "\n" "^{Könyvtár %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1667,31 +1667,31 @@ msgctxt "answer" msgid "No" msgstr "Nem" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "nincs elég memória" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s”" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc”" diff --git a/po/nb.po b/po/nb.po index e4e76ad..c7507af 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,23 +1,23 @@ # ************************************************************************* # * * # * Norwegian Bokmål Translations for Star Traders * -# * Copyright (C) 2012-21, John Zaitseff * +# * Copyright (C) 2012-22, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Johnny A. Solbu , 2012-2019. +# Johnny A. Solbu , 2012-2021. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:54+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:13+1000\n" "Last-Translator: Johnny A. Solbu \n" -"Language-Team: Norwegian Bokmaal \n" +"Language-Team: Norwegian Bokmaal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1245,12 +1245,12 @@ msgstr "%s: lagret med en inkompatibel tegnkoding" msgid "%s: illegal or missing field on line %d" msgstr "%s: ulovlig eller manglende felt på linje %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Spill ikke lagret " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1261,7 +1261,7 @@ msgstr "" "\n" "^{Mappe %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1668,31 +1668,31 @@ msgctxt "answer" msgid "No" msgstr "Nei" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "ikke mer minne" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: «%s»" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: «%lc»" diff --git a/po/pt_BR.po b/po/pt_BR.po index ef99ca1..76ae90c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -2,21 +2,21 @@ # * * # * Brazilian Portuguese Translations for Star Traders * # * Traduções em português brasileiro para o pacote trader * -# * Copyright (C) 2019-21, John Zaitseff * +# * Copyright (C) 2019-22, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Rafael Fontenelle , 2019. +# Rafael Fontenelle , 2019, 2021. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:55+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:16+1000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -50,8 +50,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Comerciantes Estelares é um jogo simples de negociação interestelar, cujo objetivo é criar empresas, comprar e vender ações, " -"emprestar e pagar dinheiro, para se tornar o jogador mais rico (o vencedor)." +"Comerciantes Estelares é um jogo simples de comércio interestelar, onde o objetivo é criar empresas, comprar e vender ações, " +"pedir emprestado e devolver dinheiro, para se tornar o jogador mais rico (o vencedor)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1245,12 +1245,12 @@ msgstr "%s: salvo com uma codificação de caracteres incompatível" msgid "%s: illegal or missing field on line %d" msgstr "%s: campo ilegal ou faltando na linha %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Jogo não salvo " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1261,7 +1261,7 @@ msgstr "" "\n" "^{Diretório %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1669,31 +1669,31 @@ msgctxt "answer" msgid "No" msgstr "Não" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "memória esgotada" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: “%s”" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NULO" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: “%lc”" diff --git a/po/ru.po b/po/ru.po index d0a9022..60bf27b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2,23 +2,23 @@ # * * # * Russian Translations for Star Traders * # * Русский перевод для игры «Звёздные торговцы» * -# * Copyright (C) 1990-2021, John Zaitseff * +# * Copyright (C) 1990-2022, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2021. +# John Zaitseff , 2011-2022. # Vladimir B. Tsarkov , 2012. # Pavel Maryanov , 2012. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:56+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:19+1000\n" "Last-Translator: John Zaitseff \n" "Language-Team: Russian \n" "Language: ru\n" @@ -1255,12 +1255,12 @@ msgstr "%s: в файле используется неподдерживаем msgid "%s: illegal or missing field on line %d" msgstr "%s: неверное поле или отсутствующее поле в строке %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Игра не сохранена " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1271,7 +1271,7 @@ msgstr "" "\n" "^{Папка %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1678,31 +1678,31 @@ msgctxt "answer" msgid "No" msgstr "Нет" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "недостаточно памяти" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: «%s»" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: «%lc»" diff --git a/po/sr.po b/po/sr.po index 7041cf5..c56cb8e 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Serbian Translation for Star Traders * -# * Copyright (C) 2016-21, John Zaitseff * +# * Copyright (C) 2016-22, John Zaitseff * # * Copyright (C) 2016-17, Free Software Foundation, Inc. * # * * # ************************************************************************* @@ -9,14 +9,14 @@ # This file is distributed under the same license as the trader package. # # Contributors: -# Мирослав Николић , 2016-2017. +# Мирослав Николић , 2016-2021. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:56+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:22+1000\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" @@ -43,15 +43,15 @@ msgstr "Играјте Звездане трговце, једноставну #. add your own keywords! #: data/trader.desktop.in:27 msgid "game;interstellar;trading;strategy;" -msgstr "игра;међузвездано;трговање;стратегиј;" +msgstr "игра;међузвездано;трговање;стратегија;" #: data/trader.appdata.xml.in:29 msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Звездани трговци је једноставна игра међузвезданог трговања, у којој треба да оснивате предузећа, купујете и продајете акције, " -"позајмљујете и враћате новац, да бисте постали најбогатији играч (победник)." +"Звездани трговци је једноставна игра међузвезданог трговања, где је циљ стварање компанија, куповина и продаја акција, " +"позајмљивање и враћање новца, како би се постао најбогатији играч (победник)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1247,12 +1247,12 @@ msgstr "%s: сачувана под несагласним кодирањем з msgid "%s: illegal or missing field on line %d" msgstr "%s: недозвољено или недостаје поље у %d. реду" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Игра није сачувана " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1263,7 +1263,7 @@ msgstr "" "\n" "^{Директоријум „%s“: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1670,31 +1670,31 @@ msgctxt "answer" msgid "No" msgstr "Не" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "нема више меморије" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s“" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: НИШТА" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc“" diff --git a/po/sv.po b/po/sv.po index 3c3bf6f..be12c67 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * Swedish Translations for Star Traders * -# * Copyright (C) 2015-21, John Zaitseff * +# * Copyright (C) 2015-22, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Anders Jonsson , 2015, 2017, 2020. +# Anders Jonsson , 2015, 2017, 2020, 2021. # msgid "" msgstr "" -"Project-Id-Version: trader 7.16\n" +"Project-Id-Version: trader 7.17\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2021-01-19 16:43+1100\n" -"PO-Revision-Date: 2021-01-14 08:56+1100\n" +"POT-Creation-Date: 2022-08-03 17:51+1000\n" +"PO-Revision-Date: 2022-08-01 07:25+1000\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -49,8 +49,8 @@ msgid "" "Star Traders is a simple game of interstellar trading, where the objective is to create companies, buy and sell shares, borrow " "and repay money, in order to become the wealthiest player (the winner)." msgstr "" -"Star Traders är ett enkelt spel om interstellär handel, där spelets mål är att bilda företag, köpa och sälja aktier, låna och " -"betala tillbaka pengar för att bli den rikaste spelaren (vinnaren)." +"Star Traders är ett enkelt spel om interstellär handel, där målet är att skapa företag, köpa och sälja aktier, låna och betala " +"tillbaka pengar, allt för att bli den rikaste spelaren (vinnaren)." #: data/trader.appdata.xml.in:48 msgid "John Zaitseff" @@ -1249,12 +1249,12 @@ msgstr "%s: sparat med en inkompatibel teckenkodning" msgid "%s: illegal or missing field on line %d" msgstr "%s: ogiltigt eller saknat fält på rad %d" -#: src/fileio.c:473 src/fileio.c:494 +#: src/fileio.c:475 src/fileio.c:496 #, c-format msgid " Game Not Saved " msgstr " Spel ej sparat " -#: src/fileio.c:474 +#: src/fileio.c:476 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1265,7 +1265,7 @@ msgstr "" "\n" "^{Katalog %s: %s^}" -#: src/fileio.c:495 +#: src/fileio.c:497 #, c-format msgid "" "Game %d could not be saved to disk.\n" @@ -1673,31 +1673,31 @@ msgctxt "answer" msgid "No" msgstr "Nej" -#: src/utils.c:489 src/utils.c:510 +#: src/utils.c:596 src/utils.c:617 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:515 +#: src/utils.c:622 msgid ": " msgstr ": " -#: src/utils.c:528 +#: src/utils.c:635 #, c-format msgid "out of memory" msgstr "slut på minne" -#: src/utils.c:1265 +#: src/utils.c:1375 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ”%s”" -#: src/utils.c:1305 +#: src/utils.c:1415 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1310 +#: src/utils.c:1420 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ”%lc”" diff --git a/src/Makefile.am b/src/Makefile.am index bb7c04c..19eff4a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2021, John Zaitseff # +# Copyright (C) 1990-2022, John Zaitseff # # # ######################################################################### diff --git a/src/exch.c b/src/exch.c index 9946fc0..43c9857 100644 --- a/src/exch.c +++ b/src/exch.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/exch.h b/src/exch.h index c45427e..845bc9e 100644 --- a/src/exch.h +++ b/src/exch.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/fileio.c b/src/fileio.c index b56b672..9df1c18 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ @@ -246,7 +246,7 @@ bool load_game (int num) filename = game_filename(num); assert(filename != NULL); - file = fopen(filename, "r"); + file = game_fopen(num, "r"); if (file == NULL) { // File could not be opened @@ -438,6 +438,7 @@ bool load_game (int num) bool save_game (int num) { const char *data_dir; + int data_dir_fd; char *buf, *encbuf; char *filename; FILE *file; @@ -464,7 +465,8 @@ bool save_game (int num) // Create the data directory, if needed data_dir = data_directory(); - if (data_dir != NULL) { + data_dir_fd = data_directory_fileno(); + if (data_dir != NULL && data_dir_fd == -1) { if (xmkdir(data_dir, S_IRWXU | S_IRWXG | S_IRWXO) != 0) { // Data directory could not be created saved_errno = errno; @@ -484,7 +486,7 @@ bool save_game (int num) filename = game_filename(num); assert(filename != NULL); - file = fopen(filename, "w"); + file = game_fopen(num, "w"); if (file == NULL) { // File could not be opened for writing saved_errno = errno; diff --git a/src/fileio.h b/src/fileio.h index 7347d52..c8f3f7b 100644 --- a/src/fileio.h +++ b/src/fileio.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/game.c b/src/game.c index 5baaf5b..eaec4bb 100644 --- a/src/game.c +++ b/src/game.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/game.h b/src/game.h index 422ef93..1c5094d 100644 --- a/src/game.h +++ b/src/game.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/globals.c b/src/globals.c index bf70839..feba89f 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/globals.h b/src/globals.h index 21283cf..75392a3 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/help.c b/src/help.c index 23fb785..03d798f 100644 --- a/src/help.c +++ b/src/help.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/help.h b/src/help.h index 7f095fc..b7af565 100644 --- a/src/help.h +++ b/src/help.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/intf.c b/src/intf.c index 3e04a0c..4e84e3b 100644 --- a/src/intf.c +++ b/src/intf.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/intf.h b/src/intf.h index 639eee5..57d5bdd 100644 --- a/src/intf.h +++ b/src/intf.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/move.c b/src/move.c index 9bcd51b..a86ad9b 100644 --- a/src/move.c +++ b/src/move.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/move.h b/src/move.h index 68d3cbf..e6b9604 100644 --- a/src/move.h +++ b/src/move.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/system.h b/src/system.h index 52a518e..9ddc50a 100644 --- a/src/system.h +++ b/src/system.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ @@ -69,6 +69,7 @@ #include #include +#include #include #include #include @@ -127,5 +128,14 @@ # define __attribute__(x) #endif +// Not all POSIX systems define O_SEARCH: use O_PATH or O_RDONLY instead +#ifndef O_SEARCH +# ifdef O_PATH +# define O_SEARCH O_PATH +# else +# define O_SEARCH O_RDONLY +# endif +#endif + #endif /* included_SYSTEM_H */ diff --git a/src/trader.c b/src/trader.c index b3a8053..22ec62b 100644 --- a/src/trader.c +++ b/src/trader.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ @@ -296,7 +296,7 @@ This program is free software that is distributed under the terms of the\n\ GNU General Public License, version 3 or later. You are welcome to\n\ modify and/or distribute it under certain conditions. This program has\n\ NO WARRANTY, to the extent permitted by law; see the License for details.\n\ -"), program_name, PACKAGE_VERSION, "1990-2021"); +"), program_name, PACKAGE_VERSION, "1990-2022"); exit(EXIT_SUCCESS); } diff --git a/src/trader.h b/src/trader.h index ed3ac12..64139c9 100644 --- a/src/trader.h +++ b/src/trader.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ diff --git a/src/utils.c b/src/utils.c index 2fd36c7..311e0a2 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ @@ -56,6 +56,7 @@ wchar_t *mon_thousands_sep; // Locale's monetary thousands separator #define APPIMAGE_NAME "AppRun.wrapped" #define DIRSEP "/" // Directory separator +#define CURDIR "." // Current directory #define HIDDEN_PATH "." // Hidden file start char #define XDG_DATA_DEFAULT ".local" DIRSEP "share" @@ -230,6 +231,7 @@ static const unsigned char xor_table[] = { static char *home_directory_str = NULL; // Full pathname to home static char *data_directory_str = NULL; // Writable data dir pathname +static int data_directory_fd = -1; // Data dir file descriptor static bool is_posix_locale = false; // Override strfmon()? @@ -238,6 +240,31 @@ static bool is_posix_locale = false; // Override strfmon()? * Module-specific function prototypes * ************************************************************************/ +/* + Function: home_directory - Return home directory pathname + Parameters: (none) + Returns: const char * - Pointer to home directory + + This function returns the full pathname to the user's home directory, + using the HOME environment variable. Note that the existence of or + ability to write to this pathname is NOT checked by this function. + NULL is returned if the home directory cannot be determined. +*/ +static const char *home_directory (void); + + +/* + Function: game_rel_filename - Generate a relative game filename + Parameters: gamenum - Game number (1-9) as an integer + Returns: char * - Pointer to game filename string + + This function returns a game filename, as a malloc()ed string, relative + to some current directory. If gamenum is outside the range 1 to 9 + (inclusive), NULL is returned. +*/ +extern char *game_rel_filename (int gamenum); + + /* Function: apply_xor - Scramble a buffer using xor_table Parameters: dest - Location of destination buffer @@ -301,7 +328,8 @@ static ssize_t b64decode (const void *restrict in, size_t inlen, * Initialisation and environment function definitions * ************************************************************************/ -// These functions are documented in the file "utils.h" +/* These functions are documented in the file "utils.h" or in the + comments above. */ /***********************************************************************/ @@ -348,6 +376,8 @@ const char *home_directory (void) if (home != NULL && *home != '\0') { home_directory_str = xstrdup(home); + } else { + home_directory_str = xstrdup(CURDIR); } } @@ -369,8 +399,6 @@ const char *data_directory (void) const char *dirsep_hiddenpath = DIRSEP HIDDEN_PATH; const char *datahome_part = DIRSEP XDG_DATA_DEFAULT DIRSEP; - struct stat statbuf; - assert(strlen(dirsep) == 1); @@ -389,7 +417,8 @@ const char *data_directory (void) strcat(p, dirsep_hiddenpath); strcat(p, program_name); - if (stat(p, &statbuf) == 0 && S_ISDIR(statbuf.st_mode)) { + data_directory_fd = open(p, O_DIRECTORY | O_SEARCH); + if (data_directory_fd != -1) { // Directory "$HOME/.trader" exists: use that data_directory_str = p; } else { @@ -431,10 +460,48 @@ const char *data_directory (void) } } + if (data_directory_str != NULL && data_directory_fd == -1) { + data_directory_fd = open(data_directory_str, O_DIRECTORY | O_SEARCH); + } + return data_directory_str; } +/***********************************************************************/ +// data_directory_fileno: Return file descriptor of data directory + +int data_directory_fileno (void) +{ + if (data_directory_fd == -1) { + (void) data_directory(); + } + + return data_directory_fd; +} + + +/***********************************************************************/ +// game_rel_filename: Generate a relative game filename + +char *game_rel_filename (int gamenum) +{ + /* This implementation assumes a POSIX environment and an ASCII-safe + character encoding. */ + + char *p; + + + if (gamenum < 1 || gamenum > 9) { + return NULL; + } + + p = xmalloc(GAME_FILENAME_BUFSIZE); + snprintf(p, GAME_FILENAME_BUFSIZE, GAME_FILENAME_PROTO, gamenum); + return p; +} + + /***********************************************************************/ // game_filename: Convert an integer to a game filename @@ -445,30 +512,70 @@ char *game_filename (int gamenum) const char *dirsep = DIRSEP; - char buf[GAME_FILENAME_BUFSIZE]; // Buffer for part of filename + char *gfn; // Relative game filename const char *dd; // Data directory - - if (gamenum < 1 || gamenum > 9) { + gfn = game_rel_filename(gamenum); + if (gfn == NULL) { return NULL; } dd = data_directory(); - snprintf(buf, GAME_FILENAME_BUFSIZE, GAME_FILENAME_PROTO, gamenum); - if (dd == NULL) { - return xstrdup(buf); + return gfn; } else { - char *p = xmalloc(strlen(dd) + strlen(dirsep) + strlen(buf) + 1); + char *p = xmalloc(strlen(dd) + strlen(dirsep) + strlen(gfn) + 1); strcpy(p, dd); strcat(p, dirsep); - strcat(p, buf); + strcat(p, gfn); + free(gfn); return p; } } +/***********************************************************************/ +// game_fopen: Open a game file for reading or writing + +FILE *game_fopen (int gamenum, const char *mode) +{ + char *gfn; + int ddfd; + int fd; + int oflag; + mode_t omode; + + + gfn = game_rel_filename(gamenum); + if (gfn == NULL) { + return NULL; + } + + ddfd = data_directory_fileno(); + if (ddfd == -1) { + ddfd = AT_FDCWD; + } + + if (strcmp(mode, "r") == 0) { + oflag = O_RDONLY; + omode = 0; + } else if (strcmp(mode, "w") == 0) { + oflag = O_WRONLY | O_CREAT | O_TRUNC; + omode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; + } else { + free(gfn); + errno = EINVAL; + return NULL; + } + + fd = openat(ddfd, gfn, oflag, omode); + free(gfn); + + return (fd == -1) ? NULL : fdopen(fd, mode); +} + + /************************************************************************ * Error-reporting function definitions * ************************************************************************/ @@ -822,6 +929,7 @@ char *scramble (char *restrict dest, const char *restrict src, // Place checksum in front of Base64 string snprintf(chksumbuf, SCRAMBLE_CHKSUM_LEN + 1, "%03x", chksum); memcpy(dest, chksumbuf, SCRAMBLE_CHKSUM_LEN); + dest[size - 1] = '\0'; // Keep Coverity Scan happy... free(xorbuf); } @@ -1116,19 +1224,21 @@ int xmkdir (const char *pathname, mode_t mode) return -1; } - // Check that pathname already exists and is a directory - if (stat(pathname, &statbuf) == 0) { - if (S_ISDIR(statbuf.st_mode)) { - return 0; - } else { - errno = ENOTDIR; - return -1; - } - } - // Try creating the directory ret = mkdir(pathname, mode); - if (ret == 0 || (errno != ENOENT && errno != ENOTDIR)) { + if (ret != 0 && errno == EEXIST) { + // Pathname exists: is it a directory? + if (stat(pathname, &statbuf) == 0) { + if (S_ISDIR(statbuf.st_mode)) { + return 0; + } else { + errno = ENOTDIR; + return -1; + } + } else { + return -1; + } + } else if (ret == 0 || (errno != ENOENT && errno != ENOTDIR)) { return ret; } diff --git a/src/utils.h b/src/utils.h index 8482c90..9f61930 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2021, John Zaitseff * +* Copyright (C) 1990-2022, John Zaitseff * * * ************************************************************************/ @@ -81,26 +81,14 @@ extern wchar_t *mon_thousands_sep; // Local monetary thousands separator extern void init_program_name (const char *argv0); -/* - Function: home_directory - Return home directory pathname - Parameters: (none) - Returns: const char * - Pointer to home directory - - This function returns the full pathname to the user's home directory, - using the HOME environment variable. Note that the existence of or - ability to write to this pathname is NOT checked by this function. - NULL is returned if the home directory cannot be determined. -*/ -extern const char *home_directory (void); - - /* Function: data_directory - Return writable data directory pathname Parameters: (none) Returns: const char * - Pointer to data directory This function returns the full pathname to a potentially-writable data - directory, usually within the user's home directory. + directory, usually within the user's home directory. The pointer so + returned must NOT be passed to free(). Assuming program_name is set to "trader", if "$HOME/.trader" exists, that directory is returned as the data directory. Otherwise, if the @@ -109,12 +97,27 @@ extern const char *home_directory (void); "$HOME/.local/share/trader" is returned. Note that the returned path is NOT created by this function, nor is the - ability to read from or write to this path checked. NULL is returned - if the path cannot be determined. + ability to read from or write to this path checked. However, if the + path already exists, it is opened and used for game_fopen(); this may + be checked by running data_directory_fileno(). NULL is returned if the + path cannot be determined. */ extern const char *data_directory (void); +/* + Function: data_directory_fileno - Return file descriptor of data directory + Parameters: (none) + Returns: int - File descriptor, or -1 on failure + + This function returns the file descriptor of the potentially-writable + data directory returned by data_directory(), or -1 if that directory + does not exist. Note that this function does NOT create the data + directory itself. +*/ +extern int data_directory_fileno (void); + + /* Function: game_filename - Convert an integer to a game filename Parameters: gamenum - Game number (1-9) as an integer @@ -122,14 +125,32 @@ extern const char *data_directory (void); This function returns the full game filename as a malloc()ed string (ie, a string that must be freed at a later time by calling free()). + This string is to be used for display ONLY, not as a parameter to + fopen(), to avoid issues of TOCTOU (time-of-check / time-of-use). If gamenum is between 1 and 9 inclusive, the string returned is in the - form data_directory() + "/" + GAME_FILENAME(gamenum). If gamenum is - any other integer, NULL is returned. + form DATA_DIRECTORY + "/" + GAME_FILENAME(gamenum). If gamenum is any + other integer, NULL is returned. */ extern char *game_filename (int gamenum); +/* + Function: game_fopen - Open a game file for reading or writing + Parameters: gamenum - Game number (1-9) as an integer + mode - File mode: "r" for reading, "w" for writing + Returns: FILE * - Pointer to open file structure + + This function opens a game file for reading or writing, depending on + the mode string, returning a pointer to the open file structure. Note + that the data directory must be created before calling this function, + by checking whether data_directory_fileno() returns -1: if so, the + directory must be created. NULL is returned (and errno set) if the + file cannot be opened successfully. +*/ +extern FILE *game_fopen (int gamenum, const char *mode); + + /************************************************************************ * Error-reporting function prototypes * ************************************************************************/