diff --git a/.gitattributes b/.gitattributes
index e42c973..3827ab4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5,6 +5,9 @@ Makefile.am ident
/data/trader.desktop.in ident
/data/trader.svg ident
/doc/trader.* ident
+/lib/obsolete-strings.c ident
+/lib/xopen-source.h ident
+/m4/xopen-source.m4 ident
/po/LINGUAS ident
/po/Makevars ident
/po/POTFILES.in ident
diff --git a/COPYING b/COPYING
index 5e5d6d0..ced3565 100644
--- a/COPYING
+++ b/COPYING
@@ -1,683 +1,741 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-The Star Traders game is free software that is distributed under the terms
-of the GNU General Public License. The actual copyright on this program
-("the Program", in the language of the License) belongs to John Zaitseff,
-although the text of the License itself belongs to the Free Software
-Foundation.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
-Even though the GNU General Public License does NOT require you to send
-your modifications back to the author, it is considered "good form" to do
-so, as this allows your modifications to be incorporated into future
+**Copyright © 1990–2019, 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
+program (“the Program”, in the language of the License) belongs to John
+Zaitseff, although the text of the License itself belongs to the Free
+Software Foundation.
+
+Even though the GNU General Public License does *not* require you to send
+your modifications back to the author, it is considered “good form” to do
+so, as this allows your modifications to be incorporated into future
versions of the program, allowing others to benefit from them.
---------------------------------------------------------------------------
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
+==========================
+GNU GENERAL PUBLIC LICENSE
+==========================
+--------------------------
+ Version 3, 29 June 2007
+--------------------------
- Copyright (C) 2007 Free Software Foundation, Inc.
+| Copyright © 2007 Free Software Foundation, Inc.
+| https://fsf.org/
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
+ *Everyone is permitted to copy and distribute verbatim copies of this
+ license document, but changing it is not allowed.*
- Preamble
-The GNU General Public License is a free, copyleft license for software
+Preamble
+========
+
+The GNU General Public License is a free, copyleft license for software
and other kinds of works.
-The licenses for most software and other practical works are designed to
-take away your freedom to share and change the works. By contrast, the
-GNU General Public License is intended to guarantee your freedom to share
-and change all versions of a program---to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the GNU
-General Public License for most of our software; it applies also to any
-other work released this way by its authors. You can apply it to your
-programs, too.
+The licenses for most software and other practical works are designed to
+take away your freedom to share and change the works. By contrast, the
+GNU General Public License is intended to guarantee your freedom to share
+and change all versions of a program—to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
-When we speak of free software, we are referring to freedom, not price.
-Our General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for them if you
-wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs, and that
-you know you can do these things.
+When we speak of free software, we are referring to freedom, not price.
+Our General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for them if you
+wish), that you receive source code or can get it if you want it, that
+you can change the software or use pieces of it in new free programs, and
+that you know you can do these things.
-To protect your rights, we need to prevent others from denying you these
-rights or asking you to surrender the rights. Therefore, you have certain
-responsibilities if you distribute copies of the software, or if you
-modify it: responsibilities to respect the freedom of others.
+To protect your rights, we need to prevent others from denying you these
+rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
-For example, if you distribute copies of such a program, whether gratis or
-for a fee, you must pass on to the recipients the same freedoms that you
-received. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
+For example, if you distribute copies of such a program, whether gratis
+or for a fee, you must pass on to the recipients the same freedoms that
+you received. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
rights.
-Developers that use the GNU GPL protect your rights with two steps: (1)
-assert copyright on the software, and (2) offer you this License giving
-you legal permission to copy, distribute and/or modify it.
+Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
-For the developers' and authors' protection, the GPL clearly explains that
-there is no warranty for this free software. For both users' and authors'
-sake, the GPL requires that modified versions be marked as changed, so
-that their problems will not be attributed erroneously to authors of
-previous versions.
+For the developers’ and authors’ protection, the GPL clearly explains
+that there is no warranty for this free software. For both users’ and
+authors’ sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
-Some devices are designed to deny users access to install or run modified
-versions of the software inside them, although the manufacturer can do so.
-This is fundamentally incompatible with the aim of protecting users'
-freedom to change the software. The systematic pattern of such abuse
-occurs in the area of products for individuals to use, which is precisely
-where it is most unacceptable. Therefore, we have designed this version
-of the GPL to prohibit the practice for those products. If such problems
-arise substantially in other domains, we stand ready to extend this
-provision to those domains in future versions of the GPL, as needed to
+Some devices are designed to deny users access to install or run modified
+versions of the software inside them, although the manufacturer can do
+so. This is fundamentally incompatible with the aim of protecting users’
+freedom to change the software. The systematic pattern of such abuse
+occurs in the area of products for individuals to use, which is precisely
+where it is most unacceptable. Therefore, we have designed this version
+of the GPL to prohibit the practice for those products. If such problems
+arise substantially in other domains, we stand ready to extend this
+provision to those domains in future versions of the GPL, as needed to
protect the freedom of users.
-Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could make
-it effectively proprietary. To prevent this, the GPL assures that patents
-cannot be used to render the program non-free.
+Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
-The precise terms and conditions for copying, distribution and
+The precise terms and conditions for copying, distribution and
modification follow.
- TERMS AND CONDITIONS
- 0. Definitions.
+TERMS AND CONDITIONS
+====================
-"This License" refers to version 3 of the GNU General Public License.
+0. Definitions.
+---------------
-"Copyright" also means copyright-like laws that apply to other kinds of
+“This License” refers to version 3 of the GNU General Public License.
+
+“Copyright” also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
-"The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
+“The Program” refers to any copyrightable work licensed under this
+License. Each licensee is addressed as “you”. “Licensees” and
+“recipients” may be individuals or organizations.
-To "modify" a work means to copy from or adapt all or part of the work in
-a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
+To “modify” a work means to copy from or adapt all or part of the work in
+a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a “modified version” of the
+earlier work or a work “based on” the earlier work.
-A "covered work" means either the unmodified Program or a work based on
+A “covered work” means either the unmodified Program or a work based on
the Program.
-To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for infringement
-under applicable copyright law, except executing it on a computer or
-modifying a private copy. Propagation includes copying, distribution
-(with or without modification), making available to the public, and in
-some countries other activities as well.
+To “propagate” a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
-To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through a
-computer network, with no transfer of a copy, is not conveying.
+To “convey” a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
-An interactive user interface displays "Appropriate Legal Notices" to the
-extent that it includes a convenient and prominently visible feature that
-(1) displays an appropriate copyright notice, and (2) tells the user that
-there is no warranty for the work (except to the extent that warranties
-are provided), that licensees may convey the work under this License, and
-how to view a copy of this License. If the interface presents a list of
-user commands or options, such as a menu, a prominent item in the list
+An interactive user interface displays “Appropriate Legal Notices” to the
+extent that it includes a convenient and prominently visible feature that
+(1) displays an appropriate copyright notice, and (2) tells the user that
+there is no warranty for the work (except to the extent that warranties
+are provided), that licensees may convey the work under this License, and
+how to view a copy of this License. If the interface presents a list of
+user commands or options, such as a menu, a prominent item in the list
meets this criterion.
- 1. Source Code.
-The "source code" for a work means the preferred form of the work for
-making modifications to it. "Object code" means any non-source form of a
+1. Source Code.
+---------------
+
+The “source code” for a work means the preferred form of the work for
+making modifications to it. “Object code” means any non-source form of a
work.
-A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that is
+A “Standard Interface” means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that is
widely used among developers working in that language.
-The "System Libraries" of an executable work include anything, other than
-the work as a whole, that (a) is included in the normal form of packaging
-a Major Component, but which is not part of that Major Component, and (b)
-serves only to enable use of the work with that Major Component, or to
-implement a Standard Interface for which an implementation is available to
-the public in source code form. A "Major Component", in this context,
-means a major essential component (kernel, window system, and so on) of
-the specific operating system (if any) on which the executable work runs,
-or a compiler used to produce the work, or an object code interpreter used
-to run it.
+The “System Libraries” of an executable work include anything, other than
+the work as a whole, that (a) is included in the normal form of packaging
+a Major Component, but which is not part of that Major Component, and
+(b) serves only to enable use of the work with that Major Component, or
+to implement a Standard Interface for which an implementation is
+available to the public in source code form. A “Major Component”, in
+this context, means a major essential component (kernel, window system,
+and so on) of the specific operating system (if any) on which the
+executable work runs, or a compiler used to produce the work, or an
+object code interpreter used to run it.
-The "Corresponding Source" for a work in object code form means all the
-source code needed to generate, install, and (for an executable work) run
-the object code and to modify the work, including scripts to control those
-activities. However, it does not include the work's System Libraries, or
-general-purpose tools or generally available free programs which are used
-unmodified in performing those activities but which are not part of the
-work. For example, Corresponding Source includes interface definition
-files associated with source files for the work, and the source code for
-shared libraries and dynamically linked subprograms that the work is
-specifically designed to require, such as by intimate data communication
-or control flow between those subprograms and other parts of the work.
+The “Corresponding Source” for a work in object code form means all the
+source code needed to generate, install, and (for an executable work) run
+the object code and to modify the work, including scripts to control
+those activities. However, it does not include the work’s System
+Libraries, or general-purpose tools or generally available free programs
+which are used unmodified in performing those activities but which are
+not part of the work. For example, Corresponding Source includes
+interface definition files associated with source files for the work, and
+the source code for shared libraries and dynamically linked subprograms
+that the work is specifically designed to require, such as by intimate
+data communication or control flow between those subprograms and other
+parts of the work.
-The Corresponding Source need not include anything that users can
+The Corresponding Source need not include anything that users can
regenerate automatically from other parts of the Corresponding Source.
-The Corresponding Source for a work in source code form is that same work.
+The Corresponding Source for a work in source code form is that same
+work.
- 2. Basic Permissions.
-All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
+2. Basic Permissions.
+---------------------
+
+All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
-You may make, run and propagate covered works that you do not convey,
-without conditions so long as your license otherwise remains in force.
-You may convey covered works to others for the sole purpose of having them
-make modifications exclusively for you, or provide you with facilities for
-running those works, provided that you comply with the terms of this
-License in conveying all material for which you do not control copyright.
-Those thus making or running the covered works for you must do so
-exclusively on your behalf, under your direction and control, on terms
-that prohibit them from making any copies of your copyrighted material
-outside their relationship with you.
+You may make, run and propagate covered works that you do not convey,
+without conditions so long as your license otherwise remains in force.
+You may convey covered works to others for the sole purpose of having
+them make modifications exclusively for you, or provide you with
+facilities for running those works, provided that you comply with the
+terms of this License in conveying all material for which you do not
+control copyright. Those thus making or running the covered works for
+you must do so exclusively on your behalf, under your direction and
+control, on terms that prohibit them from making any copies of your
+copyrighted material outside their relationship with you.
-Conveying under any other circumstances is permitted solely under the
-conditions stated below. Sublicensing is not allowed; section 10 makes it
-unnecessary.
+Conveying under any other circumstances is permitted solely under the
+conditions stated below. Sublicensing is not allowed; section 10 makes
+it unnecessary.
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-No covered work shall be deemed part of an effective technological measure
-under any applicable law fulfilling obligations under article 11 of the
-WIPO copyright treaty adopted on 20 December 1996, or similar laws
+3. Protecting Users’ Legal Rights From Anti-Circumvention Law.
+--------------------------------------------------------------
+
+No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article 11
+of the WIPO copyright treaty adopted on 20 December 1996, or similar laws
prohibiting or restricting circumvention of such measures.
-When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to the
-covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
+When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to the
+covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work’s
+users, your or third parties’ legal rights to forbid circumvention of
technological measures.
- 4. Conveying Verbatim Copies.
-You may convey verbatim copies of the Program's source code as you receive
-it, in any medium, provided that you conspicuously and appropriately
-publish on each copy an appropriate copyright notice; keep intact all
-notices stating that this License and any non-permissive terms added in
-accord with section 7 apply to the code; keep intact all notices of the
-absence of any warranty; and give all recipients a copy of this License
-along with the Program.
+4. Conveying Verbatim Copies.
+-----------------------------
-You may charge any price or no price for each copy that you convey, and
+You may convey verbatim copies of the Program’s source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice; keep
+intact all notices stating that this License and any non-permissive terms
+added in accord with section 7 apply to the code; keep intact all notices
+of the absence of any warranty; and give all recipients a copy of this
+License along with the Program.
+
+You may charge any price or no price for each copy that you convey, and
you may offer support or warranty protection for a fee.
- 5. Conveying Modified Source Versions.
-You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the terms of
-section 4, provided that you also meet all of these conditions:
+5. Conveying Modified Source Versions.
+--------------------------------------
-a) The work must carry prominent notices stating that you modified it, and
- giving a relevant date.
+You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the terms
+of section 4, provided that you also meet all of these conditions:
-b) The work must carry prominent notices stating that it is released under
- this License and any conditions added under section 7. This
- requirement modifies the requirement in section 4 to "keep intact all
- notices".
+a) The work must carry prominent notices stating that you modified it,
+ and giving a relevant date.
-c) You must license the entire work, as a whole, under this License to
- anyone who comes into possession of a copy. This License will
- therefore apply, along with any applicable section 7 additional terms,
- to the whole of the work, and all its parts, regardless of how they are
- packaged. This License gives no permission to license the work in any
- other way, but it does not invalidate such permission if you have
+b) The work must carry prominent notices stating that it is released
+ under this License and any conditions added under section 7. This
+ requirement modifies the requirement in section 4 to “keep intact all
+ notices”.
+
+c) You must license the entire work, as a whole, under this License to
+ anyone who comes into possession of a copy. This License will
+ therefore apply, along with any applicable section 7 additional terms,
+ to the whole of the work, and all its parts, regardless of how they
+ are packaged. This License gives no permission to license the work in
+ any other way, but it does not invalidate such permission if you have
separately received it.
-d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your work
+d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your work
need not make them do so.
-A compilation of a covered work with other separate and independent works,
-which are not by their nature extensions of the covered work, and which
-are not combined with it such as to form a larger program, in or on a
-volume of a storage or distribution medium, is called an "aggregate" if
-the compilation and its resulting copyright are not used to limit the
-access or legal rights of the compilation's users beyond what the
-individual works permit. Inclusion of a covered work in an aggregate does
-not cause this License to apply to the other parts of the aggregate.
+A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work, and
+which are not combined with it such as to form a larger program, in or on
+a volume of a storage or distribution medium, is called an “aggregate” if
+the compilation and its resulting copyright are not used to limit the
+access or legal rights of the compilation’s users beyond what the
+individual works permit. Inclusion of a covered work in an aggregate
+does not cause this License to apply to the other parts of the aggregate.
- 6. Conveying Non-Source Forms.
-You may convey a covered work in object code form under the terms of
-sections 4 and 5, provided that you also convey the machine-readable
-Corresponding Source under the terms of this License, in one of these
+6. Conveying Non-Source Forms.
+------------------------------
+
+You may convey a covered work in object code form under the terms of
+sections 4 and 5, provided that you also convey the machine-readable
+Corresponding Source under the terms of this License, in one of these
ways:
-a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium customarily
+a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium customarily
used for software interchange.
-b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a written
- offer, valid for at least three years and valid for as long as you
- offer spare parts or customer support for that product model, to give
- anyone who possesses the object code either (1) a copy of the
- Corresponding Source for all the software in the product that is
- covered by this License, on a durable physical medium customarily used
- for software interchange, for a price no more than your reasonable cost
- of physically performing this conveying of source, or (2) access to
- copy the Corresponding Source from a network server at no charge.
+b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a written
+ offer, valid for at least three years and valid for as long as you
+ offer spare parts or customer support for that product model, to give
+ anyone who possesses the object code either (1) a copy of the
+ Corresponding Source for all the software in the product that is
+ covered by this License, on a durable physical medium customarily used
+ for software interchange, for a price no more than your reasonable
+ cost of physically performing this conveying of source, or (2) access
+ to copy the Corresponding Source from a network server at no charge.
-c) Convey individual copies of the object code with a copy of the written
- offer to provide the Corresponding Source. This alternative is allowed
- only occasionally and noncommercially, and only if you received the
- object code with such an offer, in accord with subsection 6b.
+c) Convey individual copies of the object code with a copy of the written
+ offer to provide the Corresponding Source. This alternative is
+ allowed only occasionally and noncommercially, and only if you
+ received the object code with such an offer, in accord with subsection
+ 6b.
-d) Convey the object code by offering access from a designated place
- (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to copy
- the object code is a network server, the Corresponding Source may be on
- a different server (operated by you or a third party) that supports
- equivalent copying facilities, provided you maintain clear directions
- next to the object code saying where to find the Corresponding Source.
- Regardless of what server hosts the Corresponding Source, you remain
- obligated to ensure that it is available for as long as needed to
+d) Convey the object code by offering access from a designated place
+ (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to copy
+ the object code is a network server, the Corresponding Source may be
+ on a different server (operated by you or a third party) that supports
+ equivalent copying facilities, provided you maintain clear directions
+ next to the object code saying where to find the Corresponding Source.
+ Regardless of what server hosts the Corresponding Source, you remain
+ obligated to ensure that it is available for as long as needed to
satisfy these requirements.
-e) Convey the object code using peer-to-peer transmission, provided you
- inform other peers where the object code and Corresponding Source of
- the work are being offered to the general public at no charge under
+e) Convey the object code using peer-to-peer transmission, provided you
+ inform other peers where the object code and Corresponding Source of
+ the work are being offered to the general public at no charge under
subsection 6d.
-A separable portion of the object code, whose source code is excluded from
-the Corresponding Source as a System Library, need not be included in
-conveying the object code work.
+A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be included
+in conveying the object code work.
-A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family, or
-household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a typical
-or common use of that class of product, regardless of the status of the
-particular user or of the way in which the particular user actually uses,
-or expects or is expected to use, the product. A product is a consumer
-product regardless of whether the product has substantial commercial,
-industrial or non-consumer uses, unless such uses represent the only
-significant mode of use of the product.
+A “User Product” is either (1) a “consumer product”, which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, “normally used” refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
-"Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
+“Installation Information” for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
modification has been made.
-If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as part
-of a transaction in which the right of possession and use of the User
-Product is transferred to the recipient in perpetuity or for a fixed term
-(regardless of how the transaction is characterized), the Corresponding
-Source conveyed under this section must be accompanied by the Installation
-Information. But this requirement does not apply if neither you nor any
-third party retains the ability to install modified object code on the
-User Product (for example, the work has been installed in ROM).
+If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as part
+of a transaction in which the right of possession and use of the User
+Product is transferred to the recipient in perpetuity or for a fixed term
+(regardless of how the transaction is characterized), the Corresponding
+Source conveyed under this section must be accompanied by the
+Installation Information. But this requirement does not apply if neither
+you nor any third party retains the ability to install modified object
+code on the User Product (for example, the work has been installed in
+ROM).
-The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
+The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
-Corresponding Source conveyed, and Installation Information provided, in
-accord with this section must be in a format that is publicly documented
-(and with an implementation available to the public in source code form),
-and must require no special password or key for unpacking, reading or
+Corresponding Source conveyed, and Installation Information provided, in
+accord with this section must be in a format that is publicly documented
+(and with an implementation available to the public in source code form),
+and must require no special password or key for unpacking, reading or
copying.
- 7. Additional Terms.
-"Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall be
-treated as though they were included in this License, to the extent that
-they are valid under applicable law. If additional permissions apply only
-to part of the Program, that part may be used separately under those
-permissions, but the entire Program remains governed by this License
+7. Additional Terms.
+--------------------
+
+“Additional permissions” are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall be
+treated as though they were included in this License, to the extent that
+they are valid under applicable law. If additional permissions apply
+only to part of the Program, that part may be used separately under those
+permissions, but the entire Program remains governed by this License
without regard to the additional permissions.
-When you convey a copy of a covered work, you may at your option remove
-any additional permissions from that copy, or from any part of it.
-(Additional permissions may be written to require their own removal in
-certain cases when you modify the work.) You may place additional
-permissions on material, added by you to a covered work, for which you
+When you convey a copy of a covered work, you may at your option remove
+any additional permissions from that copy, or from any part of it.
+(Additional permissions may be written to require their own removal in
+certain cases when you modify the work.) You may place additional
+permissions on material, added by you to a covered work, for which you
have or can give appropriate copyright permission.
-Notwithstanding any other provision of this License, for material you add
-to a covered work, you may (if authorized by the copyright holders of that
-material) supplement the terms of this License with terms:
+Notwithstanding any other provision of this License, for material you add
+to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
-a) Disclaiming warranty or limiting liability differently from the terms
+a) Disclaiming warranty or limiting liability differently from the terms
of sections 15 and 16 of this License; or
-b) Requiring preservation of specified reasonable legal notices or author
- attributions in that material or in the Appropriate Legal Notices
+b) Requiring preservation of specified reasonable legal notices or author
+ attributions in that material or in the Appropriate Legal Notices
displayed by works containing it; or
-c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
+c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
-d) Limiting the use for publicity purposes of names of licensors or
+d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
-e) Declining to grant rights under trademark law for use of some trade
+e) Declining to grant rights under trademark law for use of some trade
names, trademarks, or service marks; or
-f) Requiring indemnification of licensors and authors of that material by
- anyone who conveys the material (or modified versions of it) with
- contractual assumptions of liability to the recipient, for any
- liability that these contractual assumptions directly impose on those
+f) Requiring indemnification of licensors and authors of that material by
+ anyone who conveys the material (or modified versions of it) with
+ contractual assumptions of liability to the recipient, for any
+ liability that these contractual assumptions directly impose on those
licensors and authors.
-All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further restriction,
-you may remove that term. If a license document contains a further
-restriction but permits relicensing or conveying under this License, you
-may add to a covered work material governed by the terms of that license
-document, provided that the further restriction does not survive such
+All other non-permissive additional terms are considered “further
+restrictions” within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further restriction,
+you may remove that term. If a license document contains a further
+restriction but permits relicensing or conveying under this License, you
+may add to a covered work material governed by the terms of that license
+document, provided that the further restriction does not survive such
relicensing or conveying.
-If you add terms to a covered work in accord with this section, you must
-place, in the relevant source files, a statement of the additional terms
-that apply to those files, or a notice indicating where to find the
+If you add terms to a covered work in accord with this section, you must
+place, in the relevant source files, a statement of the additional terms
+that apply to those files, or a notice indicating where to find the
applicable terms.
-Additional terms, permissive or non-permissive, may be stated in the form
-of a separately written license, or stated as exceptions; the above
+Additional terms, permissive or non-permissive, may be stated in the form
+of a separately written license, or stated as exceptions; the above
requirements apply either way.
- 8. Termination.
-You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or modify
-it is void, and will automatically terminate your rights under this
-License (including any patent licenses granted under the third paragraph
-of section 11).
+8. Termination.
+---------------
-However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally, unless
-and until the copyright holder explicitly and finally terminates your
-license, and (b) permanently, if the copyright holder fails to notify you
-of the violation by some reasonable means prior to 60 days after the
-cessation.
+You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
-Moreover, your license from a particular copyright holder is reinstated
-permanently if the copyright holder notifies you of the violation by some
-reasonable means, this is the first time you have received notice of
-violation of this License (for any work) from that copyright holder, and
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally terminates
+your license, and (b) permanently, if the copyright holder fails to
+notify you of the violation by some reasonable means prior to 60 days
+after the cessation.
+
+Moreover, your license from a particular copyright holder is reinstated
+permanently if the copyright holder notifies you of the violation by some
+reasonable means, this is the first time you have received notice of
+violation of this License (for any work) from that copyright holder, and
you cure the violation prior to 30 days after your receipt of the notice.
-Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under this
-License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
material under section 10.
- 9. Acceptance Not Required for Having Copies.
-You are not required to accept this License in order to receive or run a
-copy of the Program. Ancillary propagation of a covered work occurring
-solely as a consequence of using peer-to-peer transmission to receive a
-copy likewise does not require acceptance. However, nothing other than
-this License grants you permission to propagate or modify any covered
-work. These actions infringe copyright if you do not accept this License.
-Therefore, by modifying or propagating a covered work, you indicate your
-acceptance of this License to do so.
+9. Acceptance Not Required for Having Copies.
+---------------------------------------------
- 10. Automatic Licensing of Downstream Recipients.
+You are not required to accept this License in order to receive or run a
+copy of the Program. Ancillary propagation of a covered work occurring
+solely as a consequence of using peer-to-peer transmission to receive a
+copy likewise does not require acceptance. However, nothing other than
+this License grants you permission to propagate or modify any covered
+work. These actions infringe copyright if you do not accept this
+License. Therefore, by modifying or propagating a covered work, you
+indicate your acceptance of this License to do so.
-Each time you convey a covered work, the recipient automatically receives
-a license from the original licensors, to run, modify and propagate that
-work, subject to this License. You are not responsible for enforcing
+
+10. Automatic Licensing of Downstream Recipients.
+-------------------------------------------------
+
+Each time you convey a covered work, the recipient automatically receives
+a license from the original licensors, to run, modify and propagate that
+work, subject to this License. You are not responsible for enforcing
compliance by third parties with this License.
-An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered work
-results from an entity transaction, each party to that transaction who
-receives a copy of the work also receives whatever licenses to the work
-the party's predecessor in interest had or could give under the previous
-paragraph, plus a right to possession of the Corresponding Source of the
-work from the predecessor in interest, if the predecessor has it or can
+An “entity transaction” is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered work
+results from an entity transaction, each party to that transaction who
+receives a copy of the work also receives whatever licenses to the work
+the party’s predecessor in interest had or could give under the previous
+paragraph, plus a right to possession of the Corresponding Source of the
+work from the predecessor in interest, if the predecessor has it or can
get it with reasonable efforts.
-You may not impose any further restrictions on the exercise of the rights
-granted or affirmed under this License. For example, you may not impose a
-license fee, royalty, or other charge for exercise of rights granted under
-this License, and you may not initiate litigation (including a cross-claim
-or counterclaim in a lawsuit) alleging that any patent claim is infringed
-by making, using, selling, offering for sale, or importing the Program or
-any portion of it.
+You may not impose any further restrictions on the exercise of the rights
+granted or affirmed under this License. For example, you may not impose
+a license fee, royalty, or other charge for exercise of rights granted
+under this License, and you may not initiate litigation (including a
+cross-claim or counterclaim in a lawsuit) alleging that any patent claim
+is infringed by making, using, selling, offering for sale, or importing
+the Program or any portion of it.
- 11. Patents.
-A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The work
-thus licensed is called the contributor's "contributor version".
+11. Patents.
+------------
-A contributor's "essential patent claims" are all patent claims owned or
-controlled by the contributor, whether already acquired or hereafter
-acquired, that would be infringed by some manner, permitted by this
-License, of making, using, or selling its contributor version, but do not
-include claims that would be infringed only as a consequence of further
-modification of the contributor version. For purposes of this definition,
-"control" includes the right to grant patent sublicenses in a manner
-consistent with the requirements of this License.
+A “contributor” is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The work
+thus licensed is called the contributor’s “contributor version”.
-Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to make,
-use, sell, offer for sale, import and otherwise run, modify and propagate
+A contributor’s “essential patent claims” are all patent claims owned or
+controlled by the contributor, whether already acquired or hereafter
+acquired, that would be infringed by some manner, permitted by this
+License, of making, using, or selling its contributor version, but do not
+include claims that would be infringed only as a consequence of further
+modification of the contributor version. For purposes of this
+definition, “control” includes the right to grant patent sublicenses in a
+manner consistent with the requirements of this License.
+
+Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor’s essential patent claims, to make,
+use, sell, offer for sale, import and otherwise run, modify and propagate
the contents of its contributor version.
-In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to sue
-for patent infringement). To "grant" such a patent license to a party
-means to make such an agreement or commitment not to enforce a patent
-against the party.
+In the following three paragraphs, a “patent license” is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To “grant” such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
-If you convey a covered work, knowingly relying on a patent license, and
-the Corresponding Source of the work is not available for anyone to copy,
-free of charge and under the terms of this License, through a publicly
-available network server or other readily accessible means, then you must
-either (1) cause the Corresponding Source to be so available, or (2)
-arrange to deprive yourself of the benefit of the patent license for this
-particular work, or (3) arrange, in a manner consistent with the
-requirements of this License, to extend the patent license to downstream
-recipients. "Knowingly relying" means you have actual knowledge that, but
-for the patent license, your conveying the covered work in a country, or
-your recipient's use of the covered work in a country, would infringe one
-or more identifiable patents in that country that you have reason to
+If you convey a covered work, knowingly relying on a patent license, and
+the Corresponding Source of the work is not available for anyone to copy,
+free of charge and under the terms of this License, through a publicly
+available network server or other readily accessible means, then you must
+either (1) cause the Corresponding Source to be so available, or
+(2) arrange to deprive yourself of the benefit of the patent license for
+this particular work, or (3) arrange, in a manner consistent with the
+requirements of this License, to extend the patent license to downstream
+recipients. “Knowingly relying” means you have actual knowledge that,
+but for the patent license, your conveying the covered work in a country,
+or your recipient’s use of the covered work in a country, would infringe
+one or more identifiable patents in that country that you have reason to
believe are valid.
-If, pursuant to or in connection with a single transaction or arrangement,
-you convey, or propagate by procuring conveyance of, a covered work, and
-grant a patent license to some of the parties receiving the covered work
-authorizing them to use, propagate, modify or convey a specific copy of
-the covered work, then the patent license you grant is automatically
-extended to all recipients of the covered work and works based on it.
+If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties receiving
+the covered work authorizing them to use, propagate, modify or convey a
+specific copy of the covered work, then the patent license you grant is
+automatically extended to all recipients of the covered work and works
+based on it.
-A patent license is "discriminatory" if it does not include within the
-scope of its coverage, prohibits the exercise of, or is conditioned on the
-non-exercise of one or more of the rights that are specifically granted
-under this License. You may not convey a covered work if you are a party
-to an arrangement with a third party that is in the business of
-distributing software, under which you make payment to the third party
-based on the extent of your activity of conveying the work, and under
-which the third party grants, to any of the parties who would receive the
-covered work from you, a discriminatory patent license (a) in connection
-with copies of the covered work conveyed by you (or copies made from those
-copies), or (b) primarily for and in connection with specific products or
-compilations that contain the covered work, unless you entered into that
-arrangement, or that patent license was granted, prior to 28 March 2007.
+A patent license is “discriminatory” if it does not include within the
+scope of its coverage, prohibits the exercise of, or is conditioned on
+the non-exercise of one or more of the rights that are specifically
+granted under this License. You may not convey a covered work if you are
+a party to an arrangement with a third party that is in the business of
+distributing software, under which you make payment to the third party
+based on the extent of your activity of conveying the work, and under
+which the third party grants, to any of the parties who would receive the
+covered work from you, a discriminatory patent license (a) in connection
+with copies of the covered work conveyed by you (or copies made from
+those copies), or (b) primarily for and in connection with specific
+products or compilations that contain the covered work, unless you
+entered into that arrangement, or that patent license was granted, prior
+to 28 March 2007.
-Nothing in this License shall be construed as excluding or limiting any
-implied license or other defenses to infringement that may otherwise be
+Nothing in this License shall be construed as excluding or limiting any
+implied license or other defenses to infringement that may otherwise be
available to you under applicable patent law.
- 12. No Surrender of Others' Freedom.
-If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate
-you to collect a royalty for further conveying from those to whom you
-convey the Program, the only way you could satisfy both those terms and
-this License would be to refrain entirely from conveying the Program.
+12. No Surrender of Others’ Freedom.
+------------------------------------
- 13. Use with the GNU Affero General Public License.
+If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not convey it at all. For example, if you agree to terms that
+obligate you to collect a royalty for further conveying from those to
+whom you convey the Program, the only way you could satisfy both those
+terms and this License would be to refrain entirely from conveying the
+Program.
-Notwithstanding any other provision of this License, you have permission
-to link or combine any covered work with a work licensed under version 3
-of the GNU Affero General Public License into a single combined work, and
-to convey the resulting work. The terms of this License will continue to
-apply to the part which is the covered work, but the special requirements
-of the GNU Affero General Public License, section 13, concerning
+
+13. Use with the GNU Affero General Public License.
+---------------------------------------------------
+
+Notwithstanding any other provision of this License, you have permission
+to link or combine any covered work with a work licensed under version 3
+of the GNU Affero General Public License into a single combined work, and
+to convey the resulting work. The terms of this License will continue to
+apply to the part which is the covered work, but the special requirements
+of the GNU Affero General Public License, section 13, concerning
interaction through a network will apply to the combination as such.
- 14. Revised Versions of this License.
-The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
+14. Revised Versions of this License.
+-------------------------------------
+
+The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
-Each version is given a distinguishing version number. If the Program
-specifies that a certain numbered version of the GNU General Public
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that numbered version or of
-any later version published by the Free Software Foundation. If the
-Program does not specify a version number of the GNU General Public
-License, you may choose any version ever published by the Free Software
+Each version is given a distinguishing version number. If the Program
+specifies that a certain numbered version of the GNU General Public
+License “or any later version” applies to it, you have the option of
+following the terms and conditions either of that numbered version or of
+any later version published by the Free Software Foundation. If the
+Program does not specify a version number of the GNU General Public
+License, you may choose any version ever published by the Free Software
Foundation.
-If the Program specifies that a proxy can decide which future versions of
-the GNU General Public License can be used, that proxy's public statement
-of acceptance of a version permanently authorizes you to choose that
+If the Program specifies that a proxy can decide which future versions of
+the GNU General Public License can be used, that proxy’s public statement
+of acceptance of a version permanently authorizes you to choose that
version for the Program.
-Later license versions may give you additional or different permissions.
-However, no additional obligations are imposed on any author or copyright
+Later license versions may give you additional or different permissions.
+However, no additional obligations are imposed on any author or copyright
holder as a result of your choosing to follow a later version.
- 15. Disclaimer of Warranty.
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+15. Disclaimer of Warranty.
+---------------------------
- 16. Limitation of Liability.
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE
+COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
-ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
- 17. Interpretation of Sections 15 and 16.
+16. Limitation of Liability.
+----------------------------
-If the disclaimer of warranty and limitation of liability provided above
-cannot be given local legal effect according to their terms, reviewing
-courts shall apply local law that most closely approximates an absolute
-waiver of all civil liability in connection with the Program, unless a
-warranty or assumption of liability accompanies a copy of the Program in
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
+ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
+THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
+OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+
+17. Interpretation of Sections 15 and 16.
+-----------------------------------------
+
+If the disclaimer of warranty and limitation of liability provided above
+cannot be given local legal effect according to their terms, reviewing
+courts shall apply local law that most closely approximates an absolute
+waiver of all civil liability in connection with the Program, unless a
+warranty or assumption of liability accompanies a copy of the Program in
return for a fee.
- END OF TERMS AND CONDITIONS
- How to Apply These Terms to Your New Programs
+**END OF TERMS AND CONDITIONS**
-If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
+
+How to Apply These Terms to Your New Programs
+=============================================
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
terms.
-To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively state the
-exclusion of warranty; and each file should have at least the "copyright"
-line and a pointer to where the full notice is found.
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively state
+the exclusion of warranty; and each file should have at least the
+“copyright” line and a pointer to where the full notice is found.
-
- Copyright (C) ,
+.. parsed-literal::
- This program 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
- (at your option) any later version.
+ *one line to give the program's name and a brief idea of what it does.*
+ Copyright (C) *year* *name of author*
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ This program 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
+ (at your option) any later version.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
-If the program does terminal interaction, make it output a short notice
+If the program does terminal interaction, make it output a short notice
like this when it starts in an interactive mode:
- Copyright (C) ,
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
+.. parsed-literal::
-The hypothetical commands "show w" and "show c" should show the
-appropriate parts of the General Public License. Of course, your
-program's commands might be different; for a GUI interface, you would use
-an "about box".
+ *program* Copyright (C) *year* *name of author*
+ This program comes with ABSOLUTELY NO WARRANTY; for details type \`show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type \`show c' for details.
-You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
+The hypothetical commands ``show w`` and ``show c`` should show the
+appropriate parts of the General Public License. Of course, your
+program’s commands might be different; for a GUI interface, you would use
+an “about box”.
-The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications
-with the library. If this is what you want to do, use the GNU Lesser
-General Public License instead of this License. But first, please read
-.
+You should also get your employer (if you work as a programmer) or
+school, if any, to sign a “copyright disclaimer” for the program, if
+necessary. For more information on this, and how to apply and follow the
+GNU GPL, see https://www.gnu.org/licenses/.
+
+The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications
+with the library. If this is what you want to do, use the GNU Lesser
+General Public License instead of this License. But first, please read
+https://www.gnu.org/licenses/why-not-lgpl.html.
diff --git a/INSTALL b/INSTALL
index 0a724cd..eda8710 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,121 +1,161 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-Star Traders is written in the C99 programming language and uses Autoconf
-and Automake to handle compilation and installation. Assuming you have
-the needed tools, all you should need to do is run the following commands
-from the source directory:
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+Star Traders is written in the C99 programming language and uses Autoconf
+and Automake to handle compilation and installation. Assuming you have
+the needed tools, all you should need to do is run the following commands
+from the source directory::
./configure
make
make install
-The first two commands may be run as an ordinary user; the last may need
+The first two commands may be run as an ordinary user; the last may need
to be done as the system administrator (root).
+.. contents::
+
+
Prerequisites
=============
-Star Traders requires the following components for successful compilation
+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) is more
- than adequate.
+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.
-2. An operating system ideally conforming to ISO/IEC 9945-1:2001 (POSIX)
- or to the X/Open Single Unix Specification v3 or later. In short, any
- modern Unix or Unix-like system like Linux almost certainly qualifies.
- In actual fact, Star Traders uses the GNU Portability Library, so many
- older systems may also work without modification.
+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.
+ In short, any modern Unix or Unix-like system like Linux almost
+ certainly qualifies.
-3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses
- is preferred over system-native libraries, if present. Locales with
- multibyte character sequences (such as UTF-8) require a wide-character
- version of Curses, such as NcursesW, to work correctly.
+ In actual fact, Star Traders uses the GNU Portability Library, so
+ many older systems may also work without modification.
-4. The GNU Gettext library, version 0.19.8 or later, to allow the game to
- use languages other than English; this is also called Native Language
- Support. If you do not have this library (and do not wish to install
- it), you may pass "--disable-nls" to the configure script.
+3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses
+ is preferred over system-native libraries, if present. Locales with
+ multibyte character sequences (such as UTF-8) require a
+ wide-character version of Curses, such as NcursesW, to work
+ correctly.
-5. Development libraries and header files for all of the above. On many
- systems, these files are part of XXX-dev or XXX-devel packages.
+4. The GNU Gettext library, version 0.19.8 or later, to allow the game
+ to use languages other than English; this is also called Native
+ Language Support. If you do not have this library (and do not wish
+ to install it), you may pass ``--disable-nls`` to the configure
+ script.
-6. The GNU Perfect Hash Function Generator, gperf. This utility program
- may be required for parts of the GNU Portability Library.
+5. The GNU ``libiconv`` library for supporting multiple character
+ encodings, if required by the GNU Gettext library. This is not
+ needed on systems with the GNU C Library (``glibc``) version 2.2 or
+ later, or on Mac OS X (now called macOS) 10.3 or newer.
+
+6. Development libraries and header files for all of the above. On many
+ systems, these files are part of ``XXX-dev`` or ``XXX-devel``
+ packages.
+
+7. The GNU Perfect Hash Function Generator, ``gperf``. This utility
+ program may be required for parts of the GNU Portability Library.
Installation
============
-The installation of Star Traders can be broken down into three main steps:
-configuration, compilation and the installation proper.
+The installation of Star Traders can be broken down into three main
+steps: configuration, compilation and the installation proper.
-The first step is configuring the package for your compiler and operating
-system environment. As Star Traders uses Autoconf and Automake, all you
-need to do in most cases is run "./configure" from the top-level directory
-of the Star Traders source tree. The configure script understands all of
-the usual Autoconf options; these are explained in detail in the Autoconf
-manual:
+The first step is configuring the package for your compiler and operating
+system environment. As Star Traders uses Autoconf and Automake, all you
+need to do in most cases is run ``./configure`` from the top-level
+directory of the Star Traders source tree. The configure script
+understands all of the usual Autoconf options; these are explained in
+detail in the `Autoconf manual`__.
- http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
+__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
-This version of the configure script understands the following additional
+This version of the configure script understands the following additional
command line options:
- --disable-nls Do not use Native Language Support
- --disable-assert Turn off all debugging assert() statements
- --with-ncurses Force the use of Ncurses over the system's Curses
- library
- --with-ncursesw Force the use of the NcursesW library with wide-
- character support
- --without-ncursesw Don't use the NcursesW library with wide-character
- support
- --without-ncurses Don't use the Ncurses library: use the system's
- normal Curses library
+ --disable-nls
+ Don’t use Native Language Support. Star Traders will only
+ show untranslated US English text and only accept US ASCII
+ keyboard input.
+ --with-libintl-prefix=DIR
+ Find the GNU Gettext library installed in the *DIR*\ `/lib`
+ and *DIR*\ `/include` directories. This option is needed if
+ your library is not installed in `/usr/lib` and
+ `/usr/include` (or, more precisely, if the C compiler cannot
+ find the library “``.so``” or “``.a``” archive file using the
+ standard “``-l``” command line parameter or the relevant
+ header files using standard :code:`#include` directives).
+ --with-libiconv-prefix=DIR
+ Find the GNU ``libiconv`` library installed in the *DIR*\
+ `/lib` and *DIR*\ `/include` directories. This option is
+ needed if the GNU Gettext library requires ``libiconv`` on
+ your system, and that library is not installed in `/usr/lib`
+ and `/usr/include`.
+ --with-ncurses
+ Force the use of Ncurses over the system’s Curses library.
+ In other words, do not search for a native Curses library at
+ all.
+ --with-ncursesw
+ Force the use of the NcursesW library with wide-character
+ support. If NcursesW cannot be found, abort the
+ ``configure`` script.
+ --without-ncursesw
+ Don’t use the NcursesW library. This will prevent non-8-bit
+ character encodings like UTF-8 from working correctly and is
+ thus not recommended.
+ --without-ncurses
+ Don’t use the Ncurses library: use either NcursesW (unless
+ ``--without-ncursesw`` is also specified) or the system’s
+ normal Curses library. This option is not recommended.
+ --disable-assert
+ Turn off all debugging :code:`assert()` statements.
-By default, configure uses "/usr/local" as the top-level (prefix) install
-directory. You can change this by specifying "--prefix=DIR" to use DIR
-instead. For example, you can use a directory in your own home directory
-by specifying something like:
+By default, ``configure`` uses `/usr/local` as the top-level (prefix)
+install directory. You can change this by specifying ``--prefix=``\
+*DIR* to use *DIR* instead. For example, you can use a directory in your
+own home directory by specifying something like::
./configure --prefix=$HOME/opt/trader
-You may also specify certain configuration and/or compilation variables on
-the command line to override choices made by configure. For example, you
-can specify the compiler flags to use by passing the CFLAGS variable:
+You may also specify certain configuration and/or compilation variables
+on the command line to override choices made by ``configure``. For
+example, you can specify the compiler flags to use by passing the
+``CFLAGS`` variable::
./configure CFLAGS="-g -O2 -Wall"
-The configure script has many other options. You may obtain a list of
-these by running:
+The ``configure`` script has many other options. You may obtain a list
+of these by running::
./configure --help
-You can also run configure in a separate build-only directory tree. This
-feature requires GNU Make and allows you to keep the source code tree from
-being modified by the compilation process. To use this option, create a
-separate build directory, then run configure. For example, if you placed
-the Star Traders source code tree in $HOME/src/trader-7.12, you could run
-something like:
+You can also run ``configure`` in a separate build-only directory tree.
+This feature requires GNU Make and allows you to keep the source code
+tree from being modified by the compilation process. To use this option,
+create a separate `build` directory, then run ``configure``. For
+example, if you placed the Star Traders source code tree in
+`$HOME/src/trader-7.13`, you could run something like::
- mkdir $HOME/build/trader-build-7.12
- cd $HOME/build/trader-build-7.12
- $HOME/src/trader-7.12/configure
+ mkdir $HOME/build/trader-build-7.13
+ cd $HOME/build/trader-build-7.13
+ $HOME/src/trader-7.13/configure
-Once again, the Autoconf manual describes these options (and many others):
+Once again, the `Autoconf manual`__ describes these options (and many
+others).
- http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
+__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
-Once the package has been configured, you can type "make" to compile it,
-then "make install" to install it. You can specify the following command
-lines, amongst others:
+Once the package has been configured, you can type ``make`` to compile
+it, then ``make install`` to install it. You can specify the following
+command lines, amongst others::
make all
make install
@@ -123,128 +163,232 @@ lines, amongst others:
make distclean
make uninstall
-The command "make all" does the same thing as running "make" by itself:
-compile the package source code into an executable.
+The command ``make all`` does the same thing as running ``make`` by
+itself: compile the package source code into an executable.
-Running "make install" copies the executable program and all associated
-data and documentation files to those directories specified during
-configuration. If any of these directories require system administrator
-access privileges for writing, you will need to run "make install" as
+Running ``make install`` copies the executable program and all associated
+data and documentation files to those directories specified during
+configuration. If any of these directories require system administrator
+access privileges for writing, you will need to run ``make install`` as
system administrator (root).
-If you like, you can specify the DESTDIR variable to copy all installation
-files to a temporary location before installing them later. For example,
-if the prefix directory is "/usr/local", typing:
+.. compound::
- make install DESTDIR=/tmp/trader-install
+ If you like, you can specify the ``DESTDIR`` variable to copy all
+ installation files to a temporary location before installing them
+ later. For example, if the prefix directory is `/usr/local`, typing::
-will copy the final program "trader" to /tmp/trader-install/usr/local/bin,
-the manual page to /tmp/trader-install/usr/local/share/man/man6 and so on.
+ make install DESTDIR=/tmp/trader-install
-The "make clean" command will remove most build-generated files, such as
-object files generated by the compiler, from the source code or build
-directory. Running "make distclean" will do the same, but will remove the
-Makefiles generated by configure as well. In other words, if you run
-"make distclean", you will need to rerun "configure" if you would like to
-recompile Star Traders at a later date.
+ will copy the final program ``trader`` to
+ `/tmp/trader-install/usr/local/bin`, the manual page to
+ `/tmp/trader-install/usr/local/share/man/man6` and so on.
-Finally, "make uninstall" will remove the executable program "trader" and
-associated data and documentation files from their final installation
-location. This assumes, of course, that you have NOT run "make distclean"
-to remove the Makefiles that know the path to which those files were
-installed!
+The ``make clean`` command will remove most build-generated files, such
+as object files generated by the compiler, from the source code or build
+directory. Running ``make distclean`` will do the same, but will remove
+the Makefiles generated by ``configure`` as well. In other words, if you
+run ``make distclean``, you will need to rerun ``configure`` if you would
+like to recompile Star Traders at a later date.
+
+Finally, ``make uninstall`` will remove the executable program ``trader``
+and associated data and documentation files from their final installation
+location. This assumes, of course, that you have *not* run ``make
+distclean`` to remove the Makefiles that know the path to which those
+files were installed!
+
+
+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.29 GNU C Compiler 9.2.1
+Debian GNU/Linux Sid x86_64 2.29 Clang (LLVM) 8.0.1
+Debian GNU/Linux Sid i686 2.29 GNU C Compiler 9.2.1
+Debian GNU/Linux Sid i686 2.29 Clang (LLVM) 8.0.1
+Debian GNU/Linux 10.1 x86_64 2.28 GNU C Compiler 8.3.0
+Debian GNU/Linux 10.1 x86_64 2.28 Clang (LLVM) 7.0.1
+Ubuntu 19.10 x86_64 2.30 GNU C Compiler 9.2.1
+Ubuntu 19.10 x86_64 2.30 Clang (LLVM) 9.0.0
+Ubuntu 19.10 x86_64 2.30 Portland PGI C/C++ 19.10
+Ubuntu 18.04.3 LTS x86_64 2.27 GNU C Compiler 7.4.0
+Ubuntu 18.04.3 LTS x86_64 2.27 Clang (LLVM) 6.0.0
+Fedora 31 x86_64 2.30 GNU C Compiler 9.2.1
+CentOS 8.0 x86_64 2.28 GNU C Compiler 8.2.1
+CentOS 7.7 x86_64 2.17 GNU C Compiler 4.8.5
+CentOS 6.10 x86_64 2.12 GNU C Compiler 4.4.7
+CentOS 6.10 x86_64 2.12 Intel C/C++ 19.0.3.199
+OpenSUSE Leap 15.1 x86_64 2.26 GNU C Compiler 7.4.1
+===================== ====== ===== ========================
+
+======================= ====== ============================ ============
+Operating system Arch Compiler Notes
+======================= ====== ============================ ============
+FreeBSD 12.1 x86_64 Clang (LLVM) 8.0.1 [#freebsd1]_
+NetBSD 8.1 x86_64 GNU C Compiler 5.5.0 [#netbsd1]_
+macOS 10.14 x86_64 Apple Clang (LLVM) 11.0.0 [#macos1]_
+macOS 10.14 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]_
+Cygwin 3.0.7 (Win7 SP1) i686 GNU C Compiler 7.4.0
+======================= ====== ============================ ============
+
+Notes:
+
+.. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``,
+ ``gettext-tools`` and ``libiconv`` binary packages installed with
+ ``pkg``\(1), using::
+
+ ./configure --with-libiconv-prefix=/usr/local \
+ --with-libintl-prefix=/usr/local
+
+.. [#netbsd1] NetBSD with the ``gettext``, ``libiconv`` and ``ncursesw``
+ packages installed with ``pkg_add``\(1), using::
+
+ ./configure --with-libiconv-prefix=/usr/pkg \
+ --with-libintl-prefix=/usr/pkg \
+ --with-ncursesw --with-ncurses \
+ CURSES_CFLAGS=-I/usr/pkg/include \
+ LDFLAGS=-L/usr/pkg/lib
+
+.. [#macos1] macOS with Xcode command line tools, with the ``gettext``
+ package installed with Homebrew, using::
+
+ ./configure --with-libintl-prefix=/usr/local/opt/gettext
+
+.. [#macos2] macOS with Xcode command line tools, with the ``gettext``,
+ ``ncurses`` and ``pkg-config`` packages installed with Homebrew,
+ using::
+
+ ./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``
+
+.. [#solaris2] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses
+ CC='/opt/developerstudio12.6/bin/cc'``
+
+.. [#solaris3] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses
+ CC='/opt/developerstudio12.6/bin/cc -m64'``
+
+The following systems are known *not* to work at the current time; this
+list is almost certainly not exhaustive:
+
+================ ====== ==================== ============
+Operating system Arch Compiler Notes
+================ ====== ==================== ============
+OpenBSD 6.6 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_
+OpenBSD 6.6 x86_64 Clang (LLVM) 8.0.1 [#openbsd1]_
+================ ====== ==================== ============
+
+Notes:
+
+.. [#openbsd1] The OpenBSD C library does not include
+ :code:`` nor its associated functions, particularly
+ :code:`strfmon()`.
Git Repository
==============
-You can always download the latest version of Star Traders directly from
-the Git repository on the ZAP Group server:
+You can always download the latest version of Star Traders directly from
+the Git repository on the ZAP Group server::
git clone git://git.zap.org.au/data/git/trader.git
-Released versions of Star Traders include all scripts and files needed for
-installation. If you are cloning the source code from the Git repository,
-however, you will need to update these files yourself. You will need the
-following additional tools installed on your system to do so:
+Released versions of Star Traders include all scripts and files needed
+for installation. If you are cloning the source code from the Git
+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 (http://www.gnu.org/software/autoconf/)
-2. Automake v1.15 or later (http://www.gnu.org/software/automake/)
-3. GNU Portability Library (http://www.gnu.org/software/gnulib/)
+1. `Autoconf`__ v2.69 or later
+2. `Automake`__ v1.15 or later
+3. `pkg-config`__ v0.9.0 or later
+4. `GNU Portability Library`__
-The GNU Portability Library may be installed by retrieving the latest
-Gnulib source code from the Git repository:
+__ https://www.gnu.org/software/autoconf/
+__ https://www.gnu.org/software/automake/
+__ https://pkg-config.freedesktop.org/
+__ https://www.gnu.org/software/gnulib/
+
+The GNU Portability Library may be installed by retrieving the latest
+Gnulib source code from the Git repository::
git clone git://git.savannah.gnu.org/gnulib.git
-Once you have these tools, change to the Star Traders source code tree and
-type:
+Once you have these tools, change to the Star Traders source code tree
+and type::
PATH=${PATH}:/path/to/gnulib-tool ./build-aux/bootstrap
-where "/path/to/gnulib-tool" is, of course, the directory containing the
-Gnulib "gnulib-tool" script. You should be ready to run "./configure &&
-make && make install" now.
+where ``/path/to/gnulib-tool`` is, of course, the directory containing
+the Gnulib ``gnulib-tool`` script. You should be ready to run
+``./configure && make && make install`` now.
For Translators
===============
-Thank you for even considering to translate Star Traders into your native
-language! You may use either a released version of Star Traders, or an
-unreleased one, as discussed in the Git Repository section above. In
+Thank you for even considering to translate Star Traders into your native
+language! You may use either a released version of Star Traders, or an
+unreleased one, as discussed in the Git Repository section above. In
either case, you may find the following workflow useful.
-First, run "./build-aux/bootstrap" if needed (only for unreleased versions
-of Star Traders).
+First, run ``./build-aux/bootstrap`` if needed (only for unreleased
+versions of Star Traders).
-Next, configure and install Star Traders into your home directory:
+Next, configure and install Star Traders into your home directory::
./configure --prefix=$HOME/opt/trader
make
make install
-If you are adding a new translation, add its GNU Gettext language code to
-the file po/LINGUAS, then create the template file for that language ("zz"
-is used here):
+If you are adding a new translation, add its GNU Gettext language code to
+the file `po/LINGUAS`, then create the template file for that language
+(“``zz``” is used here)::
(cd po; msginit --locale=zz --width=132)
-Now, modify the PO file for your language using your favourite editor or
-translation tool. Please note that the generated PO file has extensive
-documentation in its translator comments. If anything is unclear, please
-feel free to ask the author and maintainer; contact details are available
-in the README file.
+Now, modify the PO file for your language using your favourite editor or
+translation tool. Please note that the generated PO file has extensive
+documentation in its translator comments. If anything is unclear, please
+feel free to ask the author and maintainer; contact details are available
+in the `README` file.
-To test your PO file, compile and run Star Traders (replace "zz" with your
-language code, of course):
+To test your PO file, compile and run Star Traders (replace “``zz``” with
+your language code, of course)::
make && make -C po zz.gmo && make install
LANGUAGE=zz $HOME/opt/trader/bin/trader
-The "make -C po zz.gmo" forces the rebuilding of the GMO output file; the
-"LANGUAGE=zz" parameter sets the language of the messages to use.
+The ``make -C po zz.gmo`` forces the rebuilding of the GMO output file;
+the ``LANGUAGE=zz`` parameter sets the language of the messages to use.
-This process of editing and testing the PO file can be done iteratively,
-of course: make a change, recompile, run the program to see the changes,
+This process of editing and testing the PO file can be done iteratively,
+of course: make a change, recompile, run the program to see the changes,
repeat as needed.
Once you have finished your translation, please submit the PO file to the
-Translation Project. The relevant web page for Star Traders is:
+Translation Project (TP). See the `TP Star Traders`__ web page or read
+their `Translators and the TP`__ page for additional information.
- http://translationproject.org/domain/trader.html
+__ https://translationproject.org/domain/trader.html
+__ https://translationproject.org/html/translators.html
-More information for translators is available at:
-
- http://translationproject.org/html/translators.html
-
-To clean up your install directory, simply run:
+To clean up your install directory, simply run::
rm -fr $HOME/opt/trader
-By the way, as mentioned in the translator comments, 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.
+By the way, as mentioned in the translator comments, 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.
diff --git a/Makefile.am b/Makefile.am
index b00291c..1ef870d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -24,7 +24,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
# Subdirectories to recurse into
@@ -33,4 +33,6 @@ SUBDIRS = lib src po data doc m4
# Additional files to distribute
EXTRA_DIST = \
build-aux/bootstrap \
- build-aux/msgfmt-desktop
+ build-aux/msgfmt-desktop \
+ lib/obsolete-strings.c \
+ lib/xopen-source.h
diff --git a/NEWS b/NEWS
index 068f012..0280ec9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,18 +1,49 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-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).
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
-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 Git repository on The ZAP Group web server at the following
-location: http://www.zap.org.au/gitweb/trader.git
+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).
+
+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`__.
+
+__ https://www.zap.org.au/git-browser/trader.git
+__ https://www.zap.org.au/
+
+
+.. contents::
+
+
+Version 7.13 (13th November, 2019)
+----------------------------------
+
+Converted all text files to reStructuredText (ReST) format. This format
+is still quite readable as raw text, and is much more capable than the
+myriad all-slightly-incompatible variants of Markdown.
+
+Modified the source code to work more reliably on non-GNU C Library
+(``glibc``) platforms, particularly FreeBSD, Solaris and Cygwin, when
+using the standard POSIX locale. Extensively tested the build procedure
+on multiple operating systems and compilers, and submitted code upstream
+to the Autoconf Archive project to make this work more robustly. Listed
+tested operating system and compiler combinations in the `INSTALL` file.
+
+Updated the Esperanto translation, with thanks to Felipe Castro.
+
+Updated one string in the game for consistency with other labels; updated
+all PO translations to suit. Also added strings from obsolete versions
+of the GNU C Library so that Star Traders can provide translations for
+them.
+
+Updated to the latest snapshot of the Gnulib GNU Portability Library. In
+addition, updated the list of prerequisites in the `INSTALL` file and
+listed some more command line options for the ``configure`` script.
Version 7.12 (24th August, 2017)
@@ -24,40 +55,44 @@ Updated the Serbian translation, with thanks to Мирослав Николић.
Version 7.11 (18th June, 2017)
------------------------------
-Bug fix: some architectures (such as ARM, PowerPC and S390) treat "char"
-as "unsigned char", and this caused b64decode() to fail while loading a
-saved game. Changed the relevant type from "char" to "int" to fix this.
+Bug fix: some architectures (such as ARM, PowerPC and S390) treat
+:code:`char` as :code:`unsigned char`, and this caused
+:code:`b64decode()` to fail while loading a saved game. Changed the
+relevant type from :code:`char` to :code:`int` to fix this.
Version 7.10 (2nd June, 2017)
-----------------------------
-Added a data directory that contains a desktop file and appropriate icons.
-Adjusted the game constants for more dynamic play: allow the share prices
-and returns to change a bit more frequently and more rapidly. Tweaked the
-colours in the example monochrome retro-computing command lines, including
-adding an amber monitor version.
+Added a `data` directory that contains a desktop file and appropriate
+icons. Adjusted the game constants for more dynamic play: allow the
+share prices and returns to change a bit more frequently and more
+rapidly. Tweaked the colours in the example monochrome retro-computing
+command lines, including adding an amber monitor version.
-Added a Serbian translation, with thanks to Мирослав Николић. Updated the
-Danish, French, Swedish, Hungarian, Norwegian Bokmål and German transla-
-tions, in that order, with thanks to Joe Hansen, Frédéric Marchal, Anders
-Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas respectively.
+Added a Serbian translation, with thanks to Мирослав Николић. Updated
+the Danish, French, Swedish, Hungarian, Norwegian Bokmål and German
+translations, in that order, with thanks to Joe Hansen, Frédéric Marchal,
+Anders Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas
+respectively.
-Updated translatable strings to overcome a limitation of msgfmt(1): if a
-string starts or ends with a new-line character, its translation must do
-so as well. This has an impact on labels in particular. Also changed the
-help text string "Page N of M" to allow translations of the form "Of M
-pages, this is page N", and all quoted strings using the obsolete GNU form
-`like this' to 'this'. In addition, newer versions of lib/getopt.c have
-different strings. All translations have been updated as a result.
+Updated translatable strings to overcome a limitation of ``msgfmt``\(1):
+if a string starts or ends with a new-line character, its translation
+must do so as well. This has an impact on labels in particular. Also
+changed the help text string “Page *N* of *M*” to allow translations of
+the form “Of *M* pages, this is page *N*”, and all quoted strings using
+the obsolete GNU form ```like this'`` to ``'this'``. In addition, newer
+versions of `lib/getopt.c` have different strings. All translations have
+been updated as a result.
-Removed the obsolete Gnulib gettext module and updated to the latest Git
-snapshot of Gnulib. Updated the dependency version numbers for Autoconf,
-Automake and Gettext. Also updated all macros from the Autoconf Archive.
+Removed the obsolete Gnulib ``gettext`` module and updated to the latest
+Git snapshot of Gnulib. Updated the dependency version numbers for
+Autoconf, Automake and Gettext. Also updated all macros from the
+Autoconf Archive.
-Migrated the source code repository from Subversion to Git. Updated the
-documentation to suit, and also listed specific required version numbers
-for the Autoconf and Automake tools in the INSTALL file.
+Migrated the source code repository from Subversion to Git. Updated the
+documentation to suit, and also listed specific required version numbers
+for the Autoconf and Automake tools in the `INSTALL` file.
Version 7.9 (5th January, 2016)
@@ -69,169 +104,171 @@ Updated the Danish translation, with thanks to Joe Hansen.
Version 7.8 (10th September, 2015)
----------------------------------
-Changed the name of the seventh company from "Gemeni Inc" to "Gemini Inc":
-a spelling mistake that has been present since 1990! Special thanks to
-Anders Jonsson for pointing this out.
+Changed the name of the seventh company from “Gemeni Inc” to “Gemini
+Inc”: a spelling mistake that has been present since 1990! Special
+thanks to Anders Jonsson for pointing this out.
-Added the Swedish translation, with thanks to Anders Jonsson. Minor code
-changes were made to accommodate this language. Incorporated changes made
-by the translators for German, French and Norwegian Bokmål, in that order,
-with thanks to Philipp Thomas, Frédéric Marchal and Johnny A. Solbu. Also
-updated all references to GNU Gettext to version 0.19.5.
+Added the Swedish translation, with thanks to Anders Jonsson. Minor code
+changes were made to accommodate this language. Incorporated changes
+made by the translators for German, French and Norwegian Bokmål, in that
+order, with thanks to Philipp Thomas, Frédéric Marchal and
+Johnny A. Solbu. Also updated all references to GNU Gettext to version
+0.19.5.
Version 7.7 (18th August, 2015)
-------------------------------
-Added the Hungarian translation, with thanks to Balázs Úr. Minor code
-changes were made to accommodate this language. Also added documentation
-in the file INSTALL to translate Star Traders into another language.
+Added the Hungarian translation, with thanks to Balázs Úr. Minor code
+changes were made to accommodate this language. Also added documentation
+in the file `INSTALL` to translate Star Traders into another language.
Version 7.6 (13th August, 2014)
-------------------------------
-A minor release to fix compilation bugs under Cygwin: the libiconv library
-must be listed AFTER the GNU Portability Library on that platform.
+A minor release to fix compilation bugs under Cygwin: the ``libiconv``
+library must be listed *after* the GNU Portability Library on that
+platform.
-In addition, the minimum and maximum share return values were changed from
--10% to -15% and 20% to 25% respectively. This gives more incentive to
-borrow money from the Interstellar Trading Bank, whose interest rate can
-reach a maximum of 20%.
+In addition, the minimum and maximum share return values were changed
+from -10% to -15% and 20% to 25% respectively. This gives more incentive
+to borrow money from the Interstellar Trading Bank, whose interest rate
+can reach a maximum of 20%.
Version 7.5 (24th May, 2014)
----------------------------
-Rewrote the file input and output routines so that saved games are now
-stored in a much more reliable (scrambled) ASCII format. However, saved
-games from older versions will no longer load: the workaround is to start
-the older version of Star Traders with the "--dont-encrypt" command line
-option, load the relevant game and save it again straight away, change the
-second line in the game file from "File API 7.2" to "File API 7.5", then
-run the new version of Star Traders.
+Rewrote the file input and output routines so that saved games are now
+stored in a much more reliable (scrambled) ASCII format. However, saved
+games from older versions will no longer load: the workaround is to start
+the older version of Star Traders with the ``--dont-encrypt`` command
+line option, load the relevant game and save it again straight away,
+change the second line in the game file from “``File API 7.2``” to
+“``File API 7.5``”, then run the new version of Star Traders.
-Added translations for Norwegian Bokmål, Danish and Esperanto (in that
-order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro.
-Updated auxiliary files to the latest versions available from the Gnulib
+Added translations for Norwegian Bokmål, Danish and Esperanto (in that
+order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro.
+Updated auxiliary files to the latest versions available from the Gnulib
GNU Portability Library and the GNU Autoconf project.
Version 7.4 (9th May, 2012)
---------------------------
-For the first time since the CP/M-80 version of Star Traders, the game
-algorithms have been carefully reviewed and revised. In particular,
-companies may now have negative returns, making players lose money on such
-shares. This may encourage players to use the "Sell shares" option at
-appropriate times... In addition, changes in share prices, returns and
-bank interest rates have been made much "smoother", less prone to wild
-variations. These new algorithms were first modelled using Gnuplot and
+For the first time since the CP/M-80 version of Star Traders, the game
+algorithms have been carefully reviewed and revised. In particular,
+companies may now have negative returns, making players lose money on
+such shares. This may encourage players to use the “Sell shares” option
+at appropriate times… In addition, changes in share prices, returns and
+bank interest rates have been made much “smoother”, less prone to wild
+variations. These new algorithms were first modelled using Gnuplot and
Perl before being implemented in C.
-The "configure" script now prints a prominent warning if a wide-character
-version of Curses, such as NcursesW, is not available when compiling the
-game. It is a warning and not an error as single-byte locales (such as
-US-ASCII and ISO8859-1) do not require NcursesW, even if the compilation
-environment itself is a multibyte one (such as UTF-8).
+The ``configure`` script now prints a prominent warning if a
+wide-character version of Curses, such as NcursesW, is not available when
+compiling the game. It is a warning and not an error as single-byte
+locales (such as US-ASCII and ISO8859-1) do not require NcursesW, even if
+the compilation environment itself is a multibyte one (such as UTF-8).
-The Russian translation has been updated, with thanks to Vladimir Tsarkov
-and Pavel Maryanov. Translations for French, German, Finnish and Croatian
-have been added (in that order), with thanks to Frédéric Marchal, Philipp
-Thomas, Jorma Karvonen and Tomislav Krznar. Special thanks also to the
-Translation Project, which brings free (open-source) software developers
-and translators together.
+The Russian translation has been updated, with thanks to Vladimir Tsarkov
+and Pavel Maryanov. Translations for French, German, Finnish and
+Croatian have been added (in that order), with thanks to Frédéric
+Marchal, Philipp Thomas, Jorma Karvonen and Tomislav Krznar. Special
+thanks also to the Translation Project, which brings free (open-source)
+software developers and translators together.
Version 7.3 (16th March, 2012)
------------------------------
-Star Traders has been translated into Russian. In addition, a number of
-bugs with internationalisation have been fixed. The "default value" key
-(originally "=" or ";" as the first key-press in any input field) has been
-incorporated into the language translation files.
+Star Traders has been translated into Russian. In addition, a number of
+bugs with internationalisation have been fixed. The “default value” key
+(originally “``=``” or “``;``” as the first key-press in any input field)
+has been incorporated into the language translation files.
Version 7.2 (29th August, 2011)
-------------------------------
-Star Traders has been internationalised! As part of this update, all
-input and output routines have been rewritten to handle multibyte strings.
-English (Australian, British, Canadian and US) translations have been
-included. Translations for other languages (and corrections to existing
-languages) are more than welcome!
+Star Traders has been internationalised! As part of this update, all
+input and output routines have been rewritten to handle multibyte
+strings. English (Australian, British, Canadian and US) translations
+have been included. Translations for other languages (and corrections to
+existing languages) are more than welcome!
-Game files are now stored in UTF-8 format (once decrypted!) and can be
-loaded under any locale with automatic character set translation. This
-does mean, however, that game files from versions 7.0 and 7.1 of Star
+Game files are now stored in UTF-8 format (once decrypted!) and can be
+loaded under any locale with automatic character set translation. This
+does mean, however, that game files from versions 7.0 and 7.1 of Star
Traders will not load under this release.
-The program now better handles terminal resizing events (for versions of
-Curses supporting such events). It also tries to restore the terminal
+The program now better handles terminal resizing events (for versions of
+Curses supporting such events). It also tries to restore the terminal
environment correctly when receiving a terminating signal.
Version 7.1 (29th July, 2011)
-----------------------------
-A minor updated release to fix configuration problems on some platforms.
-In particular, some systems could not find the Curses libraries or header
-files, so the Autoconf macro that performed the search was rewritten and
+A minor updated release to fix configuration problems on some platforms.
+In particular, some systems could not find the Curses libraries or header
+files, so the Autoconf macro that performed the search was rewritten and
extended.
Version 7.0 (25th July, 2011)
-----------------------------
-Released the first version of Star Traders for Unix-like operating systems
-such as Linux. It requires a text console or window of at least 80x24 in
-size. The code is written in the C99 programming language as a learning
-exercise for a number of software tools and libraries; the algorithms in
-the original Pascal and Visual Basic versions are reused for the game
-logic.
+Released the first version of Star Traders for Unix-like operating
+systems such as Linux. It requires a text console or window of at least
+80×24 in size. The code is written in the C99 programming language as a
+learning exercise for a number of software tools and libraries; the
+algorithms in the original Pascal and Visual Basic versions are reused
+for the game logic.
-Note that versions 7.0 and 7.1 of Star Traders did NOT handle locales with
-multibyte character sequences (such as UTF-8) correctly. Each byte in a
-such a sequence was treated as a separate character. Eight-bit locales
-(such as US-ASCII, ISO8859-1, etc.) worked correctly.
+Note that versions 7.0 and 7.1 of Star Traders did *not* handle locales
+with multibyte character sequences (such as UTF-8) correctly. Each byte
+in a such a sequence was treated as a separate character. Eight-bit
+locales (such as US-ASCII, ISO8859-1, etc.) worked correctly.
Early history
-------------
-The original (and very primitive) Star Traders game was written by S. J.
-Singer in 1984 using Altair Basic. This was modified for Microsoft Basic
-(MBASIC) running under the CP/M-80 operating system by John Zaitseff and
+The original (and very primitive) Star Traders game was written by S. J.
+Singer in 1984 using Altair Basic. This was modified for Microsoft Basic
+(MBASIC) running under the CP/M-80 operating system by John Zaitseff and
released on 7th March, 1988.
-Star Traders was then completely rewritten in 1990 for the Australian-
-designed 8-bit MicroBee computer running CP/M-80 on a Zilog Z80 processor,
-using Turbo Pascal 3.01a. Essentially, only the name of the game and some
-of the ideas were retained in this version. Version 4.1 of Star Traders
-was released on 1st August, 1991.
+Star Traders was then completely rewritten in 1990 for the
+Australian-designed 8-bit MicroBee computer running CP/M-80 on a Zilog
+Z80 processor, using Turbo Pascal 3.01a. Essentially, only the name of
+the game and some of the ideas were retained in this version. Version
+4.1 of Star Traders was released on 1st August, 1991.
-In 1992, it was recompiled for the NEC Advanced Personal Computer (with
-8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo
-Pascal 2.0. This version had colour added to it in the form of ANSI
+In 1992, it was recompiled for the NEC Advanced Personal Computer (with
+8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo
+Pascal 2.0. This version had colour added to it in the form of ANSI
escape sequences; version 4.4 was released on 2nd August, 1993.
-The next version came in 1993, when the program was recompiled to run on
-IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 was
-used for this. The ANSI escape sequences were slightly different under
-MS-DOS than under the NEC, in that the NEC supported a number of extra
-character attributes. In other words, the MS-DOS version looked worse
-than the one running under CP/M-86!
+The next version came in 1993, when the program was recompiled to run on
+IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0
+was used for this. The ANSI escape sequences were slightly different
+under MS-DOS than under the NEC, in that the NEC supported a number of
+extra character attributes. In other words, the MS-DOS version looked
+worse than the one running under CP/M-86!
-Star Traders was recompiled again in 1994 for IBM-compatible machines with
-VGA/EGA/CGA video graphics adapters. The output routines were recoded to
-use a "windowed" look. Borland Pascal 7.0 was used for this purpose,
-along with a number of text window manipulation modules. Version 5.4 was
-released on 1st June, 1994.
+Star Traders was recompiled again in 1994 for IBM-compatible machines
+with VGA/EGA/CGA video graphics adapters. The output routines were
+recoded to use a “windowed” look. Borland Pascal 7.0 was used for this
+purpose, along with a number of text window manipulation modules.
+Version 5.4 was released on 1st June, 1994.
-In 1995, Star Traders was completely rewritten for the 16-bit Microsoft
-Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used
-for this purpose. Although completely rewritten, the original algorithms
-were reused from previous versions. Version 6.0 of the game was released
+In 1995, Star Traders was completely rewritten for the 16-bit Microsoft
+Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used
+for this purpose. Although completely rewritten, the original algorithms
+were reused from previous versions. Version 6.0 of the game was released
on 15th September, 1995.
-Star Traders was then to languish until almost 16 years later...
+Star Traders was then to languish until almost 16 years later…
diff --git a/README b/README
index 2174457..de9e81e 100644
--- a/README
+++ b/README
@@ -1,80 +1,79 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-Welcome to Star Traders! This is a simple game of interstellar trading,
-where the objective is to create companies, buy and sell shares, borrow
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+Welcome to Star Traders! This 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).
Installation
============
-Full instructions for installing Star Traders are contained in the file
-INSTALL. Please note that that file does NOT contain generic GNU Autoconf
-instructions! For the impatient, the short version is:
+Full instructions for installing Star Traders are contained in the file
+`INSTALL`. Please note that that file does *not* contain generic GNU
+Autoconf instructions! For the impatient, the short version is::
./configure
make
make install
-The final command needs to be run as the system administrator (root), of
+The final command needs to be run as the system administrator (root), of
course.
How to Play
===========
-Star Traders comes with quite extensive in-built instructions on how to
-play the game. Start by running "trader" from the command line. You will
-be prompted for the number of players; from one to eight people can play
-(although, in this version, they will all have to share the one keyboard
-and screen!). After entering the names of the players, you will have the
-opportunity to read instructions on how to play the game. Do so---and
-good luck in the game!
+Star Traders comes with quite extensive in-built instructions on how to
+play the game. Start by running ``trader`` from the command line. You
+will be prompted for the number of players; from one to eight people can
+play (although, in this version, they will all have to share the one
+keyboard and screen!). After entering the names of the players, you will
+have the opportunity to read instructions on how to play the game. Do
+so—and good luck in the game!
-The manual page for Star Traders contains more information on command line
-options, as well as some suggestions for running a retro-computing green-
-screen nostalgia-tour version of the game... Try running the following,
-for example (all on one line):
+The manual page for Star Traders contains more information on command
+line options, as well as some suggestions for running a retro-computing
+green-screen nostalgia-tour version of the game… Try running the
+following, for example (all on one line)::
xterm -g 80x24 -fa Mono -fs 18 -bg '#181818' -fg '#2CAB00' -bc +sb \
+bdc +fbx -xrm 'XTerm*colorBD: #41FF00' -e trader --no-colour &
-To read the manual page, type "man trader" from the command line.
+To read the manual page, type ``man trader`` from the command line.
Feedback
========
-Your comments, suggestions, corrections and enhancements are always warmly
-welcomed! Please send these to:
+Your comments, suggestions, corrections and enhancements are always
+warmly welcomed! Please send these to:
- Postal: John Zaitseff,
- The ZAP Group,
- Unit 6, 116 Woodburn Road,
- Berala, NSW, 2141,
- Australia
-
- E-mail: J.Zaitseff@zap.org.au
- Web: http://www.zap.org.au/software/trader/
- FTP: ftp://ftp.zap.org.au/pub/trader/
+ :Postal: | John Zaitseff,
+ | The ZAP Group,
+ | Unit 6, 116 Woodburn Road,
+ | Berala, NSW, 2141,
+ | Australia
+ :Email: | J.Zaitseff@zap.org.au
+ :Web: | https://www.zap.org.au/projects/trader/
+ :FTP: | https://ftp.zap.org.au/pub/trader/
+ | ftp://ftp.zap.org.au/pub/trader/
Copyright
=========
-Copyright (C) 1990-2017, John Zaitseff.
+**Copyright © 1990–2019, 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
-under the terms of that License as published by the Free Software
+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
+under the terms of that License as published by the Free Software
Foundation, either version 3 or (at your option) any later version.
-This game is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in
-the file COPYING for more details.
+This game is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in
+the file `COPYING` for more details.
diff --git a/build-aux/README b/build-aux/README
index 99f3cee..ed186fd 100644
--- a/build-aux/README
+++ b/build-aux/README
@@ -1,17 +1,16 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, build-aux, contains auxiliary build-related files for Star
-Traders. The following scripts are specific to this package:
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
- bootstrap - Generate auxiliary files needed for building
- msgfmt-desktop - Use msgfmt(1) or cp(1) to copy desktop files
+This directory, `build-aux`, contains auxiliary build-related files for
+Star Traders. The following scripts are specific to this package:
-All other files in this directory (other than this README file, of course)
-are generated by Autoconf, Automake or Gnulib. The bootstrap shell script
-generates these files by running those tools in the correct order; see the
-top-level INSTALL file for more details.
+* `bootstrap`: Generate auxiliary files needed for building
+* `msgfmt-desktop`: Use ``msgfmt``\(1) or ``cp``\(1) to copy desktop files
+
+All other files in this directory (other than this `README` file, of
+course) are generated by Autoconf, Automake or Gnulib. The bootstrap
+shell script generates these files by running those tools in the correct
+order; see the top-level `INSTALL` file for more details.
diff --git a/configure.ac b/configure.ac
index d0c1f73..4535eeb 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-2017, John Zaitseff *
+dnl * Copyright (C) 1990-2019, John Zaitseff *
dnl * *
dnl *********************************************************************
dnl
@@ -23,11 +23,11 @@ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
-dnl along with this program. If not, see http://www.gnu.org/licenses/.
+dnl along with this program. If not, see https://www.gnu.org/licenses/.
-AC_INIT([Star Traders], [7.12], [J.Zaitseff@zap.org.au], [trader],
- [http://www.zap.org.au/software/trader/])
+AC_INIT([Star Traders], [7.13], [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])
@@ -53,16 +53,26 @@ AX_C___ATTRIBUTE__
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
-AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION([0.19.8])
gl_INIT
+AS_IF([test "x$ac_cv_header_monetary_h" != xyes], [
+ AC_MSG_ERROR([requires to exist in the C library])
+])
+
+USE_LATEST_XOPEN_SOURCE
+AS_IF([test "x$x_cv_latest_xopen_source" = xunknown], [
+ AC_MSG_ERROR([requires X/Open SUSv4/XPG7 or SUSv3/XPG6])
+])
+
AX_WITH_CURSES
AS_IF([test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes], [
AC_MSG_ERROR([requires an X/Open-compatible Curses library with colour])
])
-AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [
+AS_IF([test "x$ax_cv_curses_enhanced" = xyes], [],
+ [test "x$USE_NLS" = xyes], [
AC_MSG_WARN([no X/Open-compatible Enhanced Curses library found
***************** Locales with multibyte character sequences (such as
@@ -84,3 +94,14 @@ AC_CONFIG_FILES([
m4/Makefile
])
AC_OUTPUT
+
+AC_MSG_NOTICE([
+
+ Configuration summary for AC_PACKAGE_NAME AC_PACKAGE_VERSION:
+
+ Building for host: $host
+ Using C compiler with options: $CC $CFLAGS
+ Installation prefix: $prefix
+ Native Language Support enabled: $USE_NLS
+ Curses library selected: $ax_cv_curses_which
+])
diff --git a/data/Makefile.am b/data/Makefile.am
index 46072f5..cecf7f4 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -24,7 +24,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
dist_desktop_DATA = trader.desktop
diff --git a/data/README b/data/README
index 39afa09..6806512 100644
--- a/data/README
+++ b/data/README
@@ -1,9 +1,8 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, data, contains non-code data related to Star Traders. In
-particular, the desktop file and icons are located here.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+This directory, `data`, contains non-code data related to Star Traders.
+In particular, the desktop file and icons are located here.
diff --git a/data/trader.desktop.in b/data/trader.desktop.in
index 6fa6bec..f8e3e64 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-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
diff --git a/data/trader.svg b/data/trader.svg
index 5ef8568..d37cf54 100644
--- a/data/trader.svg
+++ b/data/trader.svg
@@ -11,7 +11,7 @@
*************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
*************************************************************************
@@ -32,7 +32,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
-with this program. If not, see http://www.gnu.org/licenses/.
+with this program. If not, see https://www.gnu.org/licenses/.
-->
Star Traders icon
diff --git a/doc/Makefile.am b/doc/Makefile.am
index d327088..fc8c051 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -24,7 +24,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
dist_man6_MANS = trader.6
EXTRA_DIST = README
diff --git a/doc/README b/doc/README
index 9d72fc0..c09bd9b 100644
--- a/doc/README
+++ b/doc/README
@@ -1,9 +1,9 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, doc, contains documentation related to Star Traders. In
-particular, the Unix manual page for the game is in the file "trader.6".
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+This directory, `doc`, contains documentation related to Star Traders.
+In particular, the Unix manual page for the game is in the file
+`trader.6`.
diff --git a/doc/trader.6 b/doc/trader.6
index 06fbb19..d951697 100644
--- a/doc/trader.6
+++ b/doc/trader.6
@@ -1,7 +1,7 @@
.\" *********************************************************************
.\" * *
.\" * Star Traders: A Game of Interstellar Trading *
-.\" * Copyright (C) 1990-2017, John Zaitseff *
+.\" * Copyright (C) 1990-2019, John Zaitseff *
.\" * *
.\" *********************************************************************
.\"
@@ -19,7 +19,7 @@
.\" General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
-.\" along with this program. If not, see http://www.gnu.org/licenses/.
+.\" along with this program. If not, see https://www.gnu.org/licenses/.
.\"
.\"
.\" *********************************************************************
@@ -41,7 +41,7 @@
.if \n[.g] .mso www.tmac
.\"
.\" *********************************************************************
-.TH TRADER 6 "24th August, 2017" "Unix-like systems"
+.TH TRADER 6 "13th November, 2019" "Unix-like systems"
.SH NAME
trader \- a game of interstellar trading
.\" *********************************************************************
@@ -199,18 +199,20 @@ Unit 6, 116 Woodburn Road,
Berala, NSW, 2141,
.br
Australia
-.IP E-mail: 10n
+.IP Email: 10n
.MTO J.Zaitseff@zap.org.au
.PD 0
.IP Web: 10n
-.URL http://www.zap.org.au/software/trader/
+.URL https://www.zap.org.au/projects/trader/
.IP FTP: 10n
+.URL https://ftp.zap.org.au/pub/trader/
+.br
.FTP ftp://ftp.zap.org.au/pub/trader/
.PD
.PP
.\" *********************************************************************
.SH COPYRIGHT
-Copyright \(co 1990\-2017, John Zaitseff.
+Copyright \(co 1990\-2019, John Zaitseff.
.PP
\fBStar Traders\fR is free software that is distributed under the terms
of the GNU General Public License. You can redistribute it and/or modify
@@ -224,7 +226,7 @@ Public License for more details.
.PP
You should have received a copy of the GNU General Public License along
with this program. If not, see the
-.URL http://www.gnu.org/licenses/ "GNU licenses web page" .
+.URL https://www.gnu.org/licenses/ "GNU licenses web page" .
.PP
Even though the GNU General Public License does \fInot\fR require you to
send your modifications back to the author, it is considered \*(lqgood
@@ -276,6 +278,6 @@ correct bugs. Now you, too, can run this small piece of computing
history!
.\" *********************************************************************
.SH "SEE ALSO"
-.URL http://www.zap.org.au/software/trader/ "Star Traders home page"
+.URL https://www.zap.org.au/projects/trader/ "Star Traders home page"
.\" *********************************************************************
.\" End of file
diff --git a/lib/.gitignore b/lib/.gitignore
index fea09a8..a8adeb2 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,20 +1,8 @@
-/charset.alias
-/configmake.h
-/getopt.h
/iconv.h
-/iconv_open-aix.h
-/iconv_open-hpux.h
-/iconv_open-irix.h
-/iconv_open-osf.h
-/iconv_open-solaris.h
/limits.h
/locale.h
-/ref-add.sed
-/ref-del.sed
-/stddef.h
-/stdint.h
+/monetary.h
/stdio.h
-/stdlib.h
/string.h
/time.h
/unistd.h
@@ -24,6 +12,3 @@
/wctype.h
/sys/
-
-/unistr/
-/unistr/.dirstamp
diff --git a/lib/README b/lib/README
index 4f45ce5..af32813 100644
--- a/lib/README
+++ b/lib/README
@@ -1,10 +1,23 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, lib, contains source code as generated by the Gnulib GNU
-Portability Library "gnulib-tool" script. See the project web site at
-http://www.gnu.org/software/gnulib/ for more information.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+This directory, `lib`, contains source code as generated by the `Gnulib
+GNU Portability Library`__ ``gnulib-tool`` script. See that project web
+site for more information.
+
+__ https://www.gnu.org/software/gnulib/
+
+
+The following file is used by `xopen-source.m4` to redefine
+``_XOPEN_SOURCE`` appropriately. It is not part of the GNU Portability
+Library:
+
+* `xopen-source.h`
+
+The following file provides translatable strings for obsolete versions of
+various libraries. It is not part of the GNU Portability Library:
+
+* `obsolete-strings.c`
diff --git a/lib/glthread/.gitignore b/lib/glthread/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/lib/obsolete-strings.c b/lib/obsolete-strings.c
new file mode 100644
index 0000000..bbe4ebe
--- /dev/null
+++ b/lib/obsolete-strings.c
@@ -0,0 +1,85 @@
+/************************************************************************
+* *
+* Obsolete Strings From Various Libraries *
+* *
+************************************************************************/
+
+/*
+ Author: John Zaitseff
+ $Id$
+
+ This file contains strings that are present in older versions of
+ various libraries but are no longer present in files distributed as
+ part of the GNU Portability Library. This allows programs to provide
+ translations for strings used in, for example, older versions of the
+ GNU C Library as released with various Linux distributions.
+
+ This file is NOT intended to be linked into any program. Instead, it
+ is simply meant to be listed in po/POTFILES.in.
+
+
+ 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 (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see https://www.gnu.org/licenses/.
+*/
+
+
+/************************************************************************
+* From GNU C Library posix/getopt.c *
+************************************************************************/
+
+const char *glibc_posix_getopt_strings[] = {
+ /* TRANSLATORS: These strings are used in older versions of various
+ libraries, such as the GNU C Library as released with various
+ Linux distributions. */
+ N_("%s: option `%s%s' is ambiguous\n"),
+ N_("%s: option '%s%s' is ambiguous\n"),
+ N_("%s: option `%s%s' is ambiguous; possibilities:"),
+ N_("%s: option '%s%s' is ambiguous; possibilities:"),
+ N_("%s: unrecognized option `%s%s'\n"),
+ N_("%s: unrecognized option '%s%s'\n"),
+ N_("%s: option `%s%s' doesn't allow an argument\n"),
+ N_("%s: option '%s%s' doesn't allow an argument\n"),
+ N_("%s: option `%s%s' requires an argument\n"),
+ N_("%s: option '%s%s' requires an argument\n"),
+ N_("%s: invalid option -- `%c'\n"),
+ N_("%s: invalid option -- '%c'\n"),
+ N_("%s: option requires an argument -- `%c'\n"),
+ N_("%s: option requires an argument -- '%c'\n"),
+
+ N_("%s: option `%s' is ambiguous; possibilities:"),
+ N_("%s: option '%s' is ambiguous; possibilities:"),
+ N_("%s: option `%s' is ambiguous\n"),
+ N_("%s: option '%s' is ambiguous\n"),
+ N_("%s: option `--%s' doesn't allow an argument\n"),
+ N_("%s: option '--%s' doesn't allow an argument\n"),
+ N_("%s: option `%c%s' doesn't allow an argument\n"),
+ N_("%s: option '%c%s' doesn't allow an argument\n"),
+ N_("%s: option `--%s' requires an argument\n"),
+ N_("%s: option '--%s' requires an argument\n"),
+ N_("%s: unrecognized option `--%s'\n"),
+ N_("%s: unrecognized option '--%s'\n"),
+ N_("%s: unrecognized option `%c%s'\n"),
+ N_("%s: unrecognized option '%c%s'\n"),
+ N_("%s: option `-W %s' is ambiguous\n"),
+ N_("%s: option '-W %s' is ambiguous\n"),
+ N_("%s: option `-W %s' doesn't allow an argument\n"),
+ N_("%s: option '-W %s' doesn't allow an argument\n"),
+ N_("%s: option `-W %s' requires an argument\n"),
+ N_("%s: option '-W %s' requires an argument\n"),
+
+ ""
+};
+
+
+/***********************************************************************/
+// End of file
diff --git a/lib/unistr/.gitignore b/lib/unistr/.gitignore
new file mode 100644
index 0000000..c83c013
--- /dev/null
+++ b/lib/unistr/.gitignore
@@ -0,0 +1 @@
+/.dirstamp
diff --git a/lib/xopen-source.h b/lib/xopen-source.h
new file mode 100644
index 0000000..d3cf6a7
--- /dev/null
+++ b/lib/xopen-source.h
@@ -0,0 +1,44 @@
+/************************************************************************
+* *
+* Star Traders: A Game of Interstellar Trading *
+* Copyright (C) 1990-2019, John Zaitseff *
+* *
+************************************************************************/
+
+/*
+ Author: John Zaitseff
+ $Id$
+
+ This file, xopen-source.h, redefines _XOPEN_SOURCE to be the latest
+ version that is supported by the operating system's C library. It is
+ used by the Autoconf macro in ../m4/xopen-source.m4.
+
+
+ This program 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 (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see https://www.gnu.org/licenses/.
+*/
+
+
+#ifndef included_XOPEN_SOURCE_H
+#define included_XOPEN_SOURCE_H
+
+
+#ifdef LATEST_XOPEN_SOURCE
+# if ! defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < LATEST_XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+# define _XOPEN_SOURCE LATEST_XOPEN_SOURCE
+# endif
+#endif
+
+
+#endif /* included_XOPEN_SOURCE_H */
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 0a91dfe..85dc5ba 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -24,14 +24,16 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
EXTRA_DIST = \
README \
- ax_append_flag.m4 \
- ax_cflags_warn_all.m4 \
ax_c___attribute__.m4 \
+ ax_cflags_warn_all.m4 \
+ ax_compiler_vendor.m4 \
+ ax_prepend_flag.m4 \
ax_require_defined.m4 \
ax_with_curses.m4 \
- gnulib-cache.m4
+ gnulib-cache.m4 \
+ xopen-source.m4
diff --git a/m4/README b/m4/README
index f48e03b..ed3e53d 100644
--- a/m4/README
+++ b/m4/README
@@ -1,23 +1,34 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, m4, contains M4 macros used by Autoconf.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
-The following macros are from the Autoconf Archive project, as detailed on
-that project's web site, http://www.gnu.org/software/autoconf-archive/:
+This directory, `m4`, contains M4 macros used by Autoconf.
- ax_append_flag.m4
- ax_cflags_warn_all.m4
- ax_c___attribute__.m4
- ax_require_defined.m4
- ax_with_curses.m4
-The following macro was generated by running the GNU Portability Library
-"gnulib-tool" with appropriate command line options, as detailed on that
-project's web site, http://www.gnu.org/software/gnulib/:
+The following macro is custom-defined for Star Traders:
- gnulib-cache.m4
+* `xopen-source.m4`
+
+
+The following macros are from the `Autoconf Archive project`__, as
+detailed on that project’s web site:
+
+* `ax_c___attribute__.m4`
+* `ax_cflags_warn_all.m4`
+* `ax_compiler_vendor.m4`
+* `ax_prepend_flag.m4`
+* `ax_require_defined.m4`
+* `ax_with_curses.m4`
+
+__ https://www.gnu.org/software/autoconf-archive/
+
+
+The following macro was generated by running the `GNU Portability
+Library`__ ``gnulib-tool`` with appropriate command line options, as
+detailed on that project’s web site:
+
+* `gnulib-cache.m4`
+
+__ https://www.gnu.org/software/gnulib/
diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4
deleted file mode 100644
index e8c5312..0000000
--- a/m4/ax_append_flag.m4
+++ /dev/null
@@ -1,71 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
-#
-# DESCRIPTION
-#
-# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
-# added in between.
-#
-# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
-# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
-# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
-# FLAG.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim
-# Copyright (c) 2011 Maarten Bosmans
-#
-# This program 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 (at your
-# option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program. If not, see .
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 7
-
-AC_DEFUN([AX_APPEND_FLAG],
-[dnl
-AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
-AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
-AS_VAR_SET_IF(FLAGS,[
- AS_CASE([" AS_VAR_GET(FLAGS) "],
- [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
- [
- AS_VAR_APPEND(FLAGS,[" $1"])
- AC_RUN_LOG([: FLAGS="$FLAGS"])
- ])
- ],
- [
- AS_VAR_SET(FLAGS,[$1])
- AC_RUN_LOG([: FLAGS="$FLAGS"])
- ])
-AS_VAR_POPDEF([FLAGS])dnl
-])dnl AX_APPEND_FLAG
diff --git a/m4/ax_cflags_warn_all.m4 b/m4/ax_cflags_warn_all.m4
index 094577e..9235a18 100644
--- a/m4/ax_cflags_warn_all.m4
+++ b/m4/ax_cflags_warn_all.m4
@@ -4,33 +4,54 @@
#
# SYNOPSIS
#
-# AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])]
-# AX_CXXFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])]
-# AX_FCFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])]
+# AX_CFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])]
+# AX_CXXFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])]
+# AX_FCFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])]
#
# DESCRIPTION
#
-# Try to find a compiler option that enables most reasonable warnings.
+# Specify compiler options that enable most reasonable warnings. For the
+# GNU Compiler Collection (GCC), for example, it will be "-Wall". The
+# result is added to shellvar, one of CFLAGS, CXXFLAGS or FCFLAGS if the
+# first parameter is not specified.
#
-# For the GNU compiler it will be -Wall (and -ansi -pedantic) The result
-# is added to the shellvar being CFLAGS, CXXFLAGS, or FCFLAGS by default.
+# Each of these macros accepts the following optional arguments:
#
-# Currently this macro knows about the GCC, Solaris, Digital Unix, AIX,
-# HP-UX, IRIX, NEC SX-5 (Super-UX 10), Cray J90 (Unicos 10.0.0.8), and
-# Intel compilers. For a given compiler, the Fortran flags are much more
-# experimental than their C equivalents.
+# - $1 - shellvar
+# shell variable to use (CFLAGS, CXXFLAGS or FCFLAGS if not
+# specified, depending on macro)
#
-# - $1 shell-variable-to-add-to : CFLAGS, CXXFLAGS, or FCFLAGS
-# - $2 add-value-if-not-found : nothing
-# - $3 action-if-found : add value to shellvariable
-# - $4 action-if-not-found : nothing
+# - $2 - default
+# value to use for flags if compiler vendor cannot be determined (by
+# default, "")
#
-# NOTE: These macros depend on AX_APPEND_FLAG.
+# - $3 - action-if-found
+# action to take if the compiler vendor has been successfully
+# determined (by default, add the appropriate compiler flags to
+# shellvar)
+#
+# - $4 - action-if-not-found
+# action to take if the compiler vendor has not been determined or
+# is unknown (by default, add the default flags, or "" if not
+# specified, to shellvar)
+#
+# These macros use AX_COMPILER_VENDOR to determine which flags should be
+# returned for a given compiler. Not all compilers currently have flags
+# defined for them; patches are welcome. If need be, compiler flags may
+# be made language-dependent: use a construct like the following:
+#
+# [vendor_name], [m4_if(_AC_LANG_PREFIX,[C], VAR="--relevant-c-flags",dnl
+# m4_if(_AC_LANG_PREFIX,[CXX], VAR="--relevant-c++-flags",dnl
+# m4_if(_AC_LANG_PREFIX,[FC], VAR="--relevant-fortran-flags",dnl
+# VAR="$2"; FOUND="no")))],
+#
+# Note: These macros also depend on AX_PREPEND_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim
# Copyright (c) 2010 Rhys Ulerich
+# Copyright (c) 2018 John Zaitseff
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -58,65 +79,80 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 16
+#serial 25
-AC_DEFUN([AX_FLAGS_WARN_ALL],[dnl
-AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl
-AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl
-AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
-VAR,[VAR="no, unknown"
-ac_save_[]FLAGS="$[]FLAGS"
-for ac_arg dnl
-in "-warn all % -warn all" dnl Intel
- "-pedantic % -Wall" dnl GCC
- "-xstrconst % -v" dnl Solaris C
- "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix
- "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
- "-ansi -ansiE % -fullwarn" dnl IRIX
- "+ESlit % +w1" dnl HP-UX C
- "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
- "-h conform % -h msglevel 2" dnl Cray C (Unicos)
- #
-do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
-done
-FLAGS="$ac_save_[]FLAGS"
-])
-AS_VAR_POPDEF([FLAGS])dnl
-AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
-case ".$VAR" in
- .ok|.ok,*) m4_ifvaln($3,$3) ;;
- .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;;
- *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;;
-esac
-AS_VAR_POPDEF([VAR])dnl
+AC_DEFUN([AX_FLAGS_WARN_ALL], [
+ AX_REQUIRE_DEFINED([AX_PREPEND_FLAG])dnl
+ AC_REQUIRE([AX_COMPILER_VENDOR])dnl
+
+ AS_VAR_PUSHDEF([FLAGS], [m4_default($1,_AC_LANG_PREFIX[]FLAGS)])dnl
+ AS_VAR_PUSHDEF([VAR], [ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl
+ AS_VAR_PUSHDEF([FOUND], [ac_save_[]_AC_LANG_ABBREV[]flags_warn_all_found])dnl
+
+ AC_CACHE_CHECK([FLAGS for most reasonable warnings], VAR, [
+ VAR=""
+ FOUND="yes"
+ dnl Cases are listed in the order found in ax_compiler_vendor.m4
+ AS_CASE("$ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor",
+ [intel], [VAR="-w2"],
+ [ibm], [VAR="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"],
+ [pathscale], [],
+ [clang], [VAR="-Wall"],
+ [cray], [VAR="-h msglevel 2"],
+ [fujitsu], [],
+ [sdcc], [],
+ [sx], [VAR="-pvctl[,]fullmsg"],
+ [portland], [],
+ [gnu], [VAR="-Wall"],
+ [sun], [VAR="-v"],
+ [hp], [VAR="+w1"],
+ [dec], [VAR="-verbose -w0 -warnprotos"],
+ [borland], [],
+ [comeau], [],
+ [kai], [],
+ [lcc], [],
+ [sgi], [VAR="-fullwarn"],
+ [microsoft], [],
+ [metrowerks], [],
+ [watcom], [],
+ [tcc], [],
+ [unknown], [
+ VAR="$2"
+ FOUND="no"
+ ],
+ [
+ AC_MSG_WARN([Unknown compiler vendor returned by [AX_COMPILER_VENDOR]])
+ VAR="$2"
+ FOUND="no"
+ ]
+ )
+
+ AS_IF([test "x$FOUND" = "xyes"], [dnl
+ m4_default($3, [AS_IF([test "x$VAR" != "x"], [AX_PREPEND_FLAG([$VAR], [FLAGS])])])
+ ], [dnl
+ m4_default($4, [m4_ifval($2, [AX_PREPEND_FLAG([$VAR], [FLAGS])], [true])])
+ ])dnl
+ ])dnl
+
+ AS_VAR_POPDEF([FOUND])dnl
+ AS_VAR_POPDEF([VAR])dnl
+ AS_VAR_POPDEF([FLAGS])dnl
])dnl AX_FLAGS_WARN_ALL
-dnl implementation tactics:
-dnl the for-argument contains a list of options. The first part of
-dnl these does only exist to detect the compiler - usually it is
-dnl a global option to enable -ansi or -extrawarnings. All other
-dnl compilers will fail about it. That was needed since a lot of
-dnl compilers will give false positives for some option-syntax
-dnl like -Woption or -Xoption as they think of it is a pass-through
-dnl to later compile stages or something. The "%" is used as a
-dnl delimiter. A non-option comment can be given after "%%" marks
-dnl which will be shown but not added to the respective C/CXXFLAGS.
-AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl
-AC_LANG_PUSH([C])
-AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
-AC_LANG_POP([C])
-])
+AC_DEFUN([AX_CFLAGS_WARN_ALL], [dnl
+ AC_LANG_PUSH([C])
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
+ AC_LANG_POP([C])
+])dnl
-AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl
-AC_LANG_PUSH([C++])
-AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
-AC_LANG_POP([C++])
-])
+AC_DEFUN([AX_CXXFLAGS_WARN_ALL], [dnl
+ AC_LANG_PUSH([C++])
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
+ AC_LANG_POP([C++])
+])dnl
-AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl
-AC_LANG_PUSH([Fortran])
-AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
-AC_LANG_POP([Fortran])
-])
+AC_DEFUN([AX_FCFLAGS_WARN_ALL], [dnl
+ AC_LANG_PUSH([Fortran])
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
+ AC_LANG_POP([Fortran])
+])dnl
diff --git a/m4/ax_compiler_vendor.m4 b/m4/ax_compiler_vendor.m4
new file mode 100644
index 0000000..f06e865
--- /dev/null
+++ b/m4/ax_compiler_vendor.m4
@@ -0,0 +1,117 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_compiler_vendor.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_COMPILER_VENDOR
+#
+# DESCRIPTION
+#
+# Determine the vendor of the C, C++ or Fortran compiler. The vendor is
+# 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).
+#
+# To check for a Fortran compiler, you must first call AC_FC_PP_SRCEXT
+# with an appropriate preprocessor-enabled extension. For example:
+#
+# AC_LANG_PUSH([Fortran])
+# AC_PROG_FC
+# AC_FC_PP_SRCEXT([F])
+# AX_COMPILER_VENDOR
+# AC_LANG_POP([Fortran])
+#
+# LICENSE
+#
+# Copyright (c) 2008 Steven G. Johnson
+# Copyright (c) 2008 Matteo Frigo
+# Copyright (c) 2018-19 John Zaitseff
+#
+# This program 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 (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see .
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# 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
+
+AC_DEFUN([AX_COMPILER_VENDOR], [dnl
+ AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [dnl
+ dnl If you modify this list of vendors, please add similar support
+ dnl to ax_compiler_version.m4 if at all possible.
+ dnl
+ dnl Note: Do NOT check for GCC first since some other compilers
+ dnl define __GNUC__ to remain compatible with it. Compilers that
+ dnl are very slow to start (such as Intel) are listed first.
+
+ vendors="
+ intel: __ICC,__ECC,__INTEL_COMPILER
+ ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__
+ pathscale: __PATHCC__,__PATHSCALE__
+ clang: __clang__
+ cray: _CRAYC
+ fujitsu: __FUJITSU
+ sdcc: SDCC,__SDCC
+ sx: _SX
+ portland: __PGI
+ gnu: __GNUC__
+ sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95
+ hp: __HP_cc,__HP_aCC
+ dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER
+ borland: __BORLANDC__,__CODEGEARC__,__TURBOC__
+ comeau: __COMO__
+ kai: __KCC
+ lcc: __LCC__
+ sgi: __sgi,sgi
+ microsoft: _MSC_VER
+ metrowerks: __MWERKS__
+ watcom: __WATCOMC__
+ tcc: __TINYC__
+ unknown: UNKNOWN
+ "
+ for ventest in $vendors; do
+ case $ventest in
+ *:)
+ vendor=$ventest
+ continue
+ ;;
+ *)
+ vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")"
+ ;;
+ esac
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
+#if !($vencpp)
+ thisisanerror;
+#endif
+ ]])], [break])
+ done
+
+ ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=`echo $vendor | cut -d: -f1`
+ ])
+])dnl
diff --git a/m4/ax_prepend_flag.m4 b/m4/ax_prepend_flag.m4
new file mode 100644
index 0000000..adac8c5
--- /dev/null
+++ b/m4/ax_prepend_flag.m4
@@ -0,0 +1,51 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_prepend_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PREPEND_FLAG(FLAG, [FLAGS-VARIABLE])
+#
+# DESCRIPTION
+#
+# FLAG is added to the front of the FLAGS-VARIABLE shell variable, with a
+# space added in between.
+#
+# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
+# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
+# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
+# FLAG.
+#
+# NOTE: Implementation based on AX_APPEND_FLAG.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim
+# Copyright (c) 2011 Maarten Bosmans
+# Copyright (c) 2018 John Zaitseff
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 2
+
+AC_DEFUN([AX_PREPEND_FLAG],
+[dnl
+AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
+AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
+AS_VAR_SET_IF(FLAGS,[
+ AS_CASE([" AS_VAR_GET(FLAGS) "],
+ [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
+ [
+ FLAGS="$1 $FLAGS"
+ AC_RUN_LOG([: FLAGS="$FLAGS"])
+ ])
+ ],
+ [
+ AS_VAR_SET(FLAGS,[$1])
+ AC_RUN_LOG([: FLAGS="$FLAGS"])
+ ])
+AS_VAR_POPDEF([FLAGS])dnl
+])dnl AX_PREPEND_FLAG
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index d28c84d..9a9d31e 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 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
@@ -11,7 +11,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see .
+# along with this file. If not, see .
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
@@ -27,7 +27,40 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h crc getopt-gnu gettext-h gettimeofday locale mbrtowc mbsrtowcs stdbool stdio striconv string strstr sys_stat sys_time unistd wchar wcrtomb wcsdup wctob wctype-h
+# gnulib-tool --import \
+# --lib=libgnu \
+# --source-base=lib \
+# --m4-base=m4 \
+# --doc-base=doc \
+# --tests-base=tests \
+# --aux-dir=build-aux \
+# --conditional-dependencies \
+# --no-libtool \
+# --macro-prefix=gl \
+# assert \
+# btowc \
+# config-h \
+# crc \
+# extensions \
+# getopt-gnu \
+# gettext-h \
+# gettimeofday \
+# locale \
+# mbrtowc \
+# mbsrtowcs \
+# monetary \
+# stdbool \
+# stdio \
+# striconv \
+# string \
+# sys_stat \
+# sys_time \
+# unistd \
+# wchar \
+# wcrtomb \
+# wcsdup \
+# wctob \
+# wctype-h
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([])
@@ -36,17 +69,18 @@ gl_MODULES([
btowc
config-h
crc
+ extensions
getopt-gnu
gettext-h
gettimeofday
locale
mbrtowc
mbsrtowcs
+ monetary
stdbool
stdio
striconv
string
- strstr
sys_stat
sys_time
unistd
diff --git a/m4/xopen-source.m4 b/m4/xopen-source.m4
new file mode 100644
index 0000000..1bd5641
--- /dev/null
+++ b/m4/xopen-source.m4
@@ -0,0 +1,64 @@
+#########################################################################
+# #
+# Star Traders: A Game of Interstellar Trading #
+# Copyright (C) 1990-2019, John Zaitseff #
+# #
+#########################################################################
+
+# Author: John Zaitseff
+# $Id$
+#
+# This file contains the macro USE_LATEST_XOPEN_SOURCE to determine the
+# latest version of _XOPEN_SOURCE supported by the C library. It does
+# this by compiling code with various values of that symbol. Once a
+# particular value compiles without error, it redefines _XOPEN_SOURCE to
+# that value using the auxiliary file ../lib/xopen-source.h and sets
+# $x_cv_latest_xopen_source to one of the following values:
+#
+# 700 - _XOPEN_SOURCE=700 (for SUSv4 / XPG7) was accepted
+# 600 - _XOPEN_SOURCE=600 (for SUSv3 / XPG6) was accepted
+# unknown - _XOPEN_SOURCE set to above values failed to compile
+#
+#
+# This program 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 (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see https://www.gnu.org/licenses/.
+
+AC_DEFUN([_CHECK_XOPEN_SOURCE], [dnl
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+ /* Test for $2 */
+ @%:@define _XOPEN_SOURCE $1
+ @%:@include
+ ])], [$3], [$4])
+])dnl
+
+AC_DEFUN([USE_LATEST_XOPEN_SOURCE], [dnl
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AH_BOTTOM([
+/* Redefine _XOPEN_SOURCE as required */
+@%:@include
+])
+ AC_CACHE_CHECK([the latest supported version of _XOPEN_SOURCE],
+ [x_cv_latest_xopen_source], [
+ x_cv_latest_xopen_source=unknown
+ _CHECK_XOPEN_SOURCE([700], [SUSv4 / XPG7], [
+ x_cv_latest_xopen_source=700
+ ], [_CHECK_XOPEN_SOURCE([600], [SUSv3 / XPG6], [
+ x_cv_latest_xopen_source=600
+ ])])
+ ])
+ AS_IF([test "x$x_cv_latest_xopen_source" != xunknown], [dnl
+ AC_DEFINE_UNQUOTED([LATEST_XOPEN_SOURCE],
+ [$x_cv_latest_xopen_source],
+ [Define to the latest version of _XOPEN_SOURCE that is supported.])
+ ])
+])dnl USE_LATEST_XOPEN_SOURCE
diff --git a/po/LINGUAS b/po/LINGUAS
index 59a1abb..90a2532 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -23,7 +23,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
en@quot
diff --git a/po/Makevars b/po/Makevars
index dd3d154..684799a 100644
--- a/po/Makevars
+++ b/po/Makevars
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -23,7 +23,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
# The message domain is the same as the package name.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 7e0e677..5c6748f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -23,7 +23,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
# Data files from Star Traders
@@ -42,3 +42,6 @@ src/utils.c
# Source files from the Gnulib GNU Portability Library
lib/getopt.c
+
+# Strings from obsolete versions of various libraries
+lib/obsolete-strings.c
diff --git a/po/README b/po/README
index e56aad5..f961f35 100644
--- a/po/README
+++ b/po/README
@@ -1,9 +1,10 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, po, contains translations for text strings used in Star
-Traders. The GNU Gettext project is used for this purpose.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+This directory, `po`, contains translations for text strings used in Star
+Traders. The `GNU Gettext project`__ is used for this purpose.
+
+__ https://www.gnu.org/software/gettext/
diff --git a/po/da.po b/po/da.po
index 8543660..a403baa 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Danish Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,10 +12,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:34+1100\n"
"Last-Translator: Joe Hansen \n"
"Language-Team: Danish \n"
"Language: da\n"
@@ -29,7 +29,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -152,9 +152,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -163,10 +163,10 @@ msgstr ""
"Rapporter fejl til %s <%s>.\n"
"Rapporter oversættelsefejl til Dansk-gruppen .\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -705,7 +705,7 @@ msgstr "Gammel aktie: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Ny aktie: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1583,7 +1583,7 @@ msgstr "Side %1$d af %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Tryk for at fortsætte ] "
@@ -1611,17 +1611,17 @@ msgstr "%s: streng har ikke korrekt format: »%s«"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: tegn har ugyldig bredde: »%lc«"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminalstørrelse er for lille (%d x %d krævet)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: »%s«"
@@ -1631,12 +1631,12 @@ msgstr "mkchstr: »%s«"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: ugyldigt tegn i streng: »%ls«"
@@ -1645,12 +1645,12 @@ msgstr "gettxline: ugyldigt tegn i streng: »%ls«"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Jj"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1658,76 +1658,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Ja"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Nej"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "ikke nok hukommelse"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: »%s«"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: »%lc«"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: tilvalget »%s%s« er tvetydigt\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: tilvalget »%s%s« er tvetydigt; muligheder:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: tilvalget blev ikke genkendt »%s%s«\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: tilvalget »%s%s« tillader ikke et argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: tilvalget »%s%s« kræver et argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: ugyldigt tilvalg -- »%c«\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: tilvalget kræver et argument -- »%c«\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: tilvalget »%s%s« er tvetydigt\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: tilvalget »%s%s« er tvetydigt; muligheder:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: tilvalget blev ikke genkendt »%s%s«\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »%s%s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: tilvalget »%s%s« kræver et argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: ugyldigt tilvalg -- »%c«\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: tilvalget kræver et argument -- »%c«\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: tilvalget »%s« er tvetydigt; muligheder:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: tilvalget »%s« er tvetydigt; muligheder:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: tilvalget »%s« er tvetydigt\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tilvalget »%s« er tvetydigt\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »--%s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »--%s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »%c%s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »%c%s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: tilvalget »--%s« kræver et argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: tilvalget »--%s« kræver et argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tilvalget blev ikke genkendt »--%s«\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: tilvalget blev ikke genkendt »--%s«\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tilvalget blev ikke genkendt »%c%s«\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: tilvalget blev ikke genkendt »%c%s«\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: tilvalget »-W %s« er tvetydigt\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: tilvalget »-W %s« er tvetydigt\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »-W %s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: tilvalget »-W %s« tillader ikke et argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: tilvalget »-W %s« kræver et argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: tilvalget »-W %s« kræver et argument\n"
diff --git a/po/de.po b/po/de.po
index 0ac8760..cf34687 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * German Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,10 +12,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:35+1100\n"
"Last-Translator: Philipp Thomas \n"
"Language-Team: German \n"
"Language: de\n"
@@ -29,7 +29,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -154,9 +154,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -166,10 +166,10 @@ msgstr ""
"Fehler in der Übersetzung berichten Sie bitte an\n"
".\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -712,7 +712,7 @@ msgstr "Alte Aktien: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Neue Aktien: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1585,7 +1585,7 @@ msgstr "Seite %1$d von %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ drücken um fortzufahren ] "
@@ -1612,17 +1612,17 @@ msgstr "%s: Die Zeichenkette hat ein falsches Format: „%s“"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: Das Zeichen hat eine unzulässige Breite: „%lc“"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "Das Terminal ist zu klein (Mindestgröße ist %d x %d)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NULL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: „%s“"
@@ -1632,12 +1632,12 @@ msgstr "mkchstr: „%s“"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: unzulässiges Zeichen in der Zeichenkette „%ls“"
@@ -1646,12 +1646,12 @@ msgstr "gettxline: unzulässiges Zeichen in der Zeichenkette „%ls“"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Jj"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1659,76 +1659,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Ja"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Nein"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "Kein frier Speicer mehr vorhanden"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: „%s“"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: „%lc“"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: Option „%s%s“ ist mehrdeutig\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: Option „%s%s“ ist mehrdeutig; möglich wären:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: unbekannte Option „%s%s“\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: Option „%s%s“ akzeptiert keine Argumente\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: Option „%s%s“ erfordert ein Argumente\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: ungültige Option -- „%c“\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: die Option erfordert ein Argument -- „%c“\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: Option „%s%s“ ist mehrdeutig\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: Option „%s%s“ ist mehrdeutig; möglich wären:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: unbekannte Option „%s%s“\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: Option „%s%s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: Option „%s%s“ erfordert ein Argumente\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: ungültige Option -- „%c“\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: die Option erfordert ein Argument -- „%c“\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: Option „%s“ ist mehrdeutig; möglich wären:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: Option „%s“ ist mehrdeutig; möglich wären:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option „%s“ ist mehrdeutig\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Option „%s“ ist mehrdeutig\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option „--%s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: Option „--%s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option „%c%s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: Option „%c%s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: Option „--%s“ erfordert ein Argumente\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: Option „--%s“ erfordert ein Argumente\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option „--%s“\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: unbekannte Option „--%s“\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option „%c%s“\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: unbekannte Option „%c%s“\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option „-W %s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: Option „-W %s“ akzeptiert keine Argumente\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: Option „-W %s“ erfordert ein Argumente\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: Option „-W %s“ erfordert ein Argumente\n"
diff --git a/po/en_AU.po b/po/en_AU.po
index 3c34a15..accb2ca 100644
--- a/po/en_AU.po
+++ b/po/en_AU.po
@@ -1,21 +1,21 @@
# *************************************************************************
# * *
# * English (Australian) Translations for Star Traders *
-# * Copyright (C) 1990-2017, John Zaitseff *
+# * Copyright (C) 1990-2019, John Zaitseff *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# John Zaitseff , 2011-2017.
+# John Zaitseff , 2011-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:35+1100\n"
"Last-Translator: John Zaitseff \n"
"Language-Team: English (Australian) <(nothing)>\n"
"Language: en_AU\n"
@@ -28,7 +28,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -150,19 +150,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "Report bugs to %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -698,8 +698,8 @@ msgstr "Old stock: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
-msgstr "New Stock: "
+msgid "New stock: "
+msgstr "New stock: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
#. each player after two companies merge. %ls is the currency
@@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Press to continue ] "
@@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: character has illegal width: ‘%lc’"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal size is too small (%d x %d required)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ‘%s’"
@@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: illegal character in string: ‘%ls’"
@@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Yy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1643,76 +1643,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Yes"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "No"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "out of memory"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ‘%s’"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ‘%lc’"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: option ‘%s%s’ is ambiguous\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: unrecognised option ‘%s%s’\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: option ‘%s%s’ requires an argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: invalid option -- ‘%c’\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: option ‘%s%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: unrecognised option ‘%s%s’\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: option ‘%s%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: invalid option -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unrecognised option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: unrecognised option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unrecognised option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: unrecognised option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
diff --git a/po/en_CA.po b/po/en_CA.po
index f194096..204d1f3 100644
--- a/po/en_CA.po
+++ b/po/en_CA.po
@@ -1,21 +1,21 @@
# *************************************************************************
# * *
# * English (Canadian) Translations for Star Traders *
-# * Copyright (C) 1990-2017, John Zaitseff *
+# * Copyright (C) 1990-2019, John Zaitseff *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# John Zaitseff , 2011-2017.
+# John Zaitseff , 2011-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:35+1100\n"
"Last-Translator: John Zaitseff \n"
"Language-Team: English (Canadian) <(nothing)>\n"
"Language: en_CA\n"
@@ -28,7 +28,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -150,19 +150,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "Report bugs to %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -698,8 +698,8 @@ msgstr "Old stock: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
-msgstr "New Stock: "
+msgid "New stock: "
+msgstr "New stock: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
#. each player after two companies merge. %ls is the currency
@@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Press to continue ] "
@@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: character has illegal width: ‘%lc’"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal size is too small (%d x %d required)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ‘%s’"
@@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: illegal character in string: ‘%ls’"
@@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Yy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1643,76 +1643,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Yes"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "No"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "out of memory"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ‘%s’"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ‘%lc’"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: option ‘%s%s’ is ambiguous\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: unrecognized option ‘%s%s’\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: option ‘%s%s’ requires an argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: invalid option -- ‘%c’\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: option ‘%s%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: unrecognized option ‘%s%s’\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: option ‘%s%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: invalid option -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unrecognized option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: unrecognized option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unrecognized option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: unrecognized option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
diff --git a/po/en_GB.po b/po/en_GB.po
index e1b754d..6bd38f9 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -1,21 +1,21 @@
# *************************************************************************
# * *
# * English (British) Translations for Star Traders *
-# * Copyright (C) 1990-2017, John Zaitseff *
+# * Copyright (C) 1990-2019, John Zaitseff *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# John Zaitseff , 2011-2017.
+# John Zaitseff , 2011-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:35+1100\n"
"Last-Translator: John Zaitseff \n"
"Language-Team: English (British) <(nothing)>\n"
"Language: en_GB\n"
@@ -28,7 +28,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -150,19 +150,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "Report bugs to %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -698,8 +698,8 @@ msgstr "Old stock: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
-msgstr "New Stock: "
+msgid "New stock: "
+msgstr "New stock: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
#. each player after two companies merge. %ls is the currency
@@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Press to continue ] "
@@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: character has illegal width: ‘%lc’"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal size is too small (%d x %d required)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ‘%s’"
@@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: illegal character in string: ‘%ls’"
@@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Yy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1643,76 +1643,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Yes"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "No"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "out of memory"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ‘%s’"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ‘%lc’"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: option ‘%s%s’ is ambiguous\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: unrecognised option ‘%s%s’\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: option ‘%s%s’ requires an argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: invalid option -- ‘%c’\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: option ‘%s%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: unrecognised option ‘%s%s’\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: option ‘%s%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: invalid option -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unrecognised option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: unrecognised option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unrecognised option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: unrecognised option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
diff --git a/po/en_US.po b/po/en_US.po
index 8ca6a1e..ad2c435 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -1,21 +1,21 @@
# *************************************************************************
# * *
# * English (US) Translations for Star Traders *
-# * Copyright (C) 1990-2017, John Zaitseff *
+# * Copyright (C) 1990-2019, John Zaitseff *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# John Zaitseff , 2011-2017.
+# John Zaitseff , 2011-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:35+1100\n"
"Last-Translator: John Zaitseff \n"
"Language-Team: English (US) <(nothing)>\n"
"Language: en_US\n"
@@ -28,7 +28,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -150,19 +150,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "Report bugs to %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -698,8 +698,8 @@ msgstr "Old stock: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
-msgstr "New Stock: "
+msgid "New stock: "
+msgstr "New stock: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
#. each player after two companies merge. %ls is the currency
@@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Press to continue ] "
@@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: character has illegal width: ‘%lc’"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal size is too small (%d x %d required)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ‘%s’"
@@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: illegal character in string: ‘%ls’"
@@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Yy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1643,76 +1643,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Yes"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "No"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "out of memory"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ‘%s’"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ‘%lc’"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: option ‘%s%s’ is ambiguous\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: unrecognized option ‘%s%s’\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: option ‘%s%s’ requires an argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: invalid option -- ‘%c’\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: option ‘%s%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: unrecognized option ‘%s%s’\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: option ‘%s%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: invalid option -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: option requires an argument -- ‘%c’\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: option ‘%s’ is ambiguous; possibilities:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: option ‘%s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: option ‘--%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: option ‘--%s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unrecognized option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: unrecognized option ‘--%s’\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unrecognized option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: unrecognized option ‘%c%s’\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: option ‘-W %s’ is ambiguous\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: option ‘-W %s’ requires an argument\n"
diff --git a/po/eo.po b/po/eo.po
index 2931cc1..f9f2221 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,35 +1,36 @@
# *************************************************************************
# * *
# * Esperanto Translations for Star Traders *
-# * Copyright (C) 2013-17, John Zaitseff *
-# * Copyright (C) 2013-16, Free Software Foundation, Inc. *
+# * Copyright (C) 2013-19, John Zaitseff *
+# * Copyright (C) 2013-18, Free Software Foundation, Inc. *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# Felipe Castro , 2013, 2016.
+# Felipe Castro , 2013, 2016, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:18+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:36+1100\n"
"Last-Translator: Felipe Castro \n"
"Language-Team: Esperanto \n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: The name of the game. You may choose to translate it into
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -42,7 +43,7 @@ msgstr "Ludi Star Traders, simpla ludo pri interstelara komerco"
#. add your own keywords!
#: data/trader.desktop.in:27
msgid "game;interstellar;trading;strategy;"
-msgstr ""
+msgstr "ludo;kosmo;negoco;strategio;"
#. TRANSLATORS: This string is the name of the icon to use. The Desktop
#. Entry Specification states it is translatable, but unless you provide a
@@ -152,9 +153,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -163,10 +164,10 @@ msgstr ""
"Raportu program-misojn al: %s <%s>.\n"
"Raportu traduk-misojn al: .\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -704,7 +705,7 @@ msgstr "Malnova akcio: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Nova akcio: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1575,7 +1576,7 @@ msgstr "Paĝo %1$d el %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Premu por daŭrigi ] "
@@ -1602,17 +1603,17 @@ msgstr "%s: ĉeno havas malĝustan formon: '%s'"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: signo havas malpermesatan larĝon: '%lc'"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal-grando tro malgrandas (necesas %d x %d)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: '%s'"
@@ -1622,12 +1623,12 @@ msgstr "mkchstr: '%s'"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: malpermesata signo en ĉeno: '%ls'"
@@ -1636,12 +1637,12 @@ msgstr "gettxline: malpermesata signo en ĉeno: '%ls'"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "JjYy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1649,76 +1650,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Jes"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Ne"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "memoro plenpleniĝas"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: '%s'"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: '%lc'"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: la modifilo '%s%s' estas plursenca\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: nerekonata modifilo '%s%s'\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: la modifilo '%s%s' postulas argumenton\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: malvalida modifilo -- '%c'\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: la modifilo postulas argumenton -- '%c'\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: la modifilo '%s%s' estas plursenca\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: nerekonata modifilo '%s%s'\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: la modifilo '%s%s' postulas argumenton\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: malvalida modifilo -- '%c'\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: la modifilo postulas argumenton -- '%c'\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la modifilo '%s' estas plursenca\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: la modifilo '%s' estas plursenca\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: la modifilo '--%s' postulas argumenton\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: la modifilo '--%s' postulas argumenton\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nerekonata modifilo '--%s'\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nerekonata modifilo '--%s'\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nerekonata modifilo '%c%s'\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nerekonata modifilo '%c%s'\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la modifilo '-W %s' estas plursenca\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: la modifilo '-W %s' estas plursenca\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
diff --git a/po/fi.po b/po/fi.po
index cf58701..dc6450f 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Finnish Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * Copyright (C) 2012, Free Software Foundation, Inc. *
# * *
# *************************************************************************
@@ -13,23 +13,24 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:37+1100\n"
"Last-Translator: Jorma Karvonen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: The name of the game. You may choose to translate it into
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Tähtikauppiaat"
@@ -151,9 +152,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -163,10 +164,10 @@ msgstr ""
"<%s>. Ilmoita käännösvirheistä osoitteeseen\n"
".\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -708,7 +709,7 @@ msgstr "Vanha osakekanta: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Uusi osakekanta: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1579,7 +1580,7 @@ msgstr "Sivu %1$d / %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Paina jatkaaksesi ] "
@@ -1606,17 +1607,17 @@ msgstr "%s: merkkijonolla on väärä muoto: ”%s”"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: merkillä on väärä leveys: ”%lc”"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "pääteikkunakoko on liian pieni (%d x %d vaadittu)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ”%s”"
@@ -1626,12 +1627,12 @@ msgstr "mkchstr: ”%s”"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: virheellinen merkki merkkijonossa: ”%ls”"
@@ -1640,12 +1641,12 @@ msgstr "gettxline: virheellinen merkki merkkijonossa: ”%ls”"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Kk"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Ee"
@@ -1653,76 +1654,214 @@ msgstr "Ee"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Kyllä"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Ei"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "muisti loppui"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ”%s”"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ”%lc”"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen; mahdollisuudet:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: tunnistamaton valitsin ’%s%s’\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: valitsin ’%s%s’ ei salli argumenttia\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: valitsin ’%s%s’ vaatii argumentin\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: virheellinen valitsin -- ’%c’\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: valitsin vaatii argumentin -- ’%c’\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen; mahdollisuudet:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: tunnistamaton valitsin ’%s%s’\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’%s%s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: valitsin ’%s%s’ vaatii argumentin\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: virheellinen valitsin -- ’%c’\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: valitsin vaatii argumentin -- ’%c’\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: valitsin ’--%s’ vaatii argumentin\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: valitsin ’--%s’ vaatii argumentin\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tunnistamaton valitsin ’--%s’\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: tunnistamaton valitsin ’--%s’\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tunnistamaton valitsin ’%c%s’\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: tunnistamaton valitsin ’%c%s’\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n"
diff --git a/po/fr.po b/po/fr.po
index 5db36c3..6e3641c 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * French Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * Copyright (C) 2012-17, Free Software Foundation, Inc. *
# * *
# *************************************************************************
@@ -19,10 +19,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:37+1100\n"
"Last-Translator: Frédéric Marchal \n"
"Language-Team: French \n"
"Language: fr\n"
@@ -36,7 +36,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -160,9 +160,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -171,10 +171,10 @@ msgstr ""
"Rapportez les bugs à %s <%s>.\n"
"Rapportez les bugs de traduction à .\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -712,7 +712,7 @@ msgstr "Anciennes actions: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Nouvelles actions: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1595,7 +1595,7 @@ msgstr "Page %1$d sur %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Appuyez pour continuer ] "
@@ -1622,17 +1622,17 @@ msgstr "%s: la chaîne a un format incorrect: « %s »"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: caractère avec une largeur illégale: « %lc »"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "la taille du terminal est trop petite (%d × %d requis)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: « %s »"
@@ -1642,12 +1642,12 @@ msgstr "mkchstr: « %s »"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: caractère illégal dans la chaîne: « %ls »"
@@ -1656,12 +1656,12 @@ msgstr "gettxline: caractère illégal dans la chaîne: « %ls »"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Oo"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1669,76 +1669,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Oui"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Non"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "pas assez de mémoire"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: « %s »"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: « %lc »"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: l'option « %s%s » est ambiguë\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: l'option « %s%s » est ambiguë; les possibilités sont:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: option « %s%s » non reconnue\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: l'option « %s%s » n'accepte pas d'argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: l'option « %s%s » exige un argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: option invalide -- « %c »\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: l'option exige un argument -- « %c »\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: l'option « %s%s » est ambiguë\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: l'option « %s%s » est ambiguë; les possibilités sont:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: option « %s%s » non reconnue\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %s%s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: l'option « %s%s » exige un argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: option invalide -- « %c »\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: l'option exige un argument -- « %c »\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: l'option « %s » est ambiguë; les possibilités sont:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: l'option « %s » est ambiguë; les possibilités sont:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: l'option « --%s » exige un argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: l'option « --%s » exige un argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: option « --%s » non reconnue\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: option « --%s » non reconnue\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: option « %c%s » non reconnue\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: option « %c%s » non reconnue\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » n'accepte pas d'argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: l'option « -W %s » exige un argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: l'option « -W %s » exige un argument\n"
diff --git a/po/hr.po b/po/hr.po
index cfc5541..a3f9956 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Croatian Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,23 +12,24 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:37+1100\n"
"Last-Translator: Tomislav Krznar \n"
"Language-Team: Croatian \n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
#. TRANSLATORS: The name of the game. You may choose to translate it into
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -150,9 +151,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -161,10 +162,10 @@ msgstr ""
"Prijavite greške: %s <%s>.\n"
"Prijavite greške prijevoda: .\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -703,7 +704,7 @@ msgstr "Stare dionice: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Nove dionice: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1579,7 +1580,7 @@ msgstr "Stranica %1$d od %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Pritisnite za nastavak ] "
@@ -1606,17 +1607,17 @@ msgstr "%s: niz znakova ima nepravilan oblik: „%s”"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: znak ima nedozvoljenu širinu: „%lc”"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "veličina terminala je premalena (potrebno je %d x %d)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: „%s”"
@@ -1626,12 +1627,12 @@ msgstr "mkchstr: „%s”"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: nedozvoljen znak u nizu: „%ls”"
@@ -1640,12 +1641,12 @@ msgstr "gettxline: nedozvoljen znak u nizu: „%ls”"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Dd"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1653,76 +1654,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Da"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Ne"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "nema dovoljno memorije"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: „%s”"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: „%lc”"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: opcija „%s%s” je višeznačna\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: opcija „%s%s” je višeznačna; mogućnosti:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: neprepoznata opcija „%s%s”\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: opcija „%s%s” ne dozvoljava argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: opcija „%s%s” zahtijeva argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: neispravna opcija -- „%c”\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: opcija zahtijeva argument -- „%c”\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: opcija „%s%s” je višeznačna\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: opcija „%s%s” je višeznačna; mogućnosti:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: neprepoznata opcija „%s%s”\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: opcija „%s%s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: opcija „%s%s” zahtijeva argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: neispravna opcija -- „%c”\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: opcija zahtijeva argument -- „%c”\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: opcija „%s” je višeznačna; mogućnosti:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: opcija „%s” je višeznačna; mogućnosti:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija „%s” je višeznačna\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcija „%s” je višeznačna\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcija „--%s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: opcija „--%s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija „%c%s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija „%c%s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: opcija „--%s” zahtijeva argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: opcija „--%s” zahtijeva argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neprepoznata opcija „--%s”\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: neprepoznata opcija „--%s”\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neprepoznata opcija „%c%s”\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: neprepoznata opcija „%c%s”\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija „-W %s” je višeznačna\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: opcija „-W %s” je višeznačna\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija „-W %s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija „-W %s” ne dozvoljava argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: opcija „-W %s” zahtijeva argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: opcija „-W %s” zahtijeva argument\n"
diff --git a/po/hu.po b/po/hu.po
index cf699a1..becc0f4 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Hungarian Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,10 +12,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:37+1100\n"
"Last-Translator: Balázs Úr \n"
"Language-Team: Hungarian \n"
"Language: hu\n"
@@ -29,7 +29,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -153,19 +153,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "A hibák itt jelenthetők: %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -701,7 +701,7 @@ msgstr "Régi részvény: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Új részvény: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1574,7 +1574,7 @@ msgstr "%1$d / %2$d oldal"
#. 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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Nyomja le a a folytatáshoz ] "
@@ -1601,17 +1601,17 @@ msgstr "%s: a szövegnek helytelen formátuma van: „%s”"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: a karakternek szabálytalan szélessége van: „%lc”"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "a terminál mérete túl kicsi (%d x %d szükséges)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: „%s”"
@@ -1621,12 +1621,12 @@ msgstr "mkchstr: „%s”"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: érvénytelen karakter a szövegben: „%ls”"
@@ -1635,12 +1635,12 @@ msgstr "gettxline: érvénytelen karakter a szövegben: „%ls”"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Ii"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1648,76 +1648,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Igen"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Nem"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "nincs elég memória"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: „%s”"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: „%lc”"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű; lehetőségek:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: ismeretlen „%s%s” kapcsoló\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: a(z) „%s%s” kapcsolóhoz egy argumentum szükséges\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű; lehetőségek:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: ismeretlen „%s%s” kapcsoló\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: a(z) „%s%s” kapcsolóhoz egy argumentum szükséges\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ismeretlen „--%s” kapcsoló\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ismeretlen „--%s” kapcsoló\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ismeretlen „%c%s” kapcsoló\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ismeretlen „%c%s” kapcsoló\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a(z) „-W %s” kapcsoló nem egyértelmű\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: a(z) „-W %s” kapcsoló nem egyértelmű\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a(z) „-W %s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: a(z) „-W %s” kapcsoló nem enged meg argumentumot\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: a(z) „-W %s” kapcsolóhoz egy argumentum szükséges\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: a(z) „-W %s” kapcsolóhoz egy argumentum szükséges\n"
diff --git a/po/nb.po b/po/nb.po
index 36cb396..e78808a 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Norwegian Bokmål Translations for Star Traders *
-# * Copyright (C) 2012-17, John Zaitseff *
+# * Copyright (C) 2012-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,10 +12,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:37+1100\n"
"Last-Translator: Johnny A. Solbu \n"
"Language-Team: Norwegian Bokmaal \n"
"Language: nb\n"
@@ -29,7 +29,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -152,9 +152,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -163,10 +163,10 @@ msgstr ""
"Rapporter feil, på engelsk, til %s <%s>.\n"
"Oversettelsesfeil kan rapporteres til .\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -704,7 +704,7 @@ msgstr "Gamle aksjer: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Nye aksjer: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1575,7 +1575,7 @@ msgstr "Side %1$d av %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Trykk for å fortsette ] "
@@ -1602,17 +1602,17 @@ msgstr "%s: streng har feil format: «%s»"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: tegn har ugyldig bredde: «%lc»"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminal størrelsen er for liten (%d x %d kreves)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: «%s»"
@@ -1622,12 +1622,12 @@ msgstr "mkchstr: «%s»"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: ugyldig tegn i streng: «%ls»"
@@ -1636,12 +1636,12 @@ msgstr "gettxline: ugyldig tegn i streng: «%ls»"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Jj"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1649,76 +1649,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Ja"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Nei"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "ikke mer minne"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: «%s»"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: «%lc»"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: valget «%s%s» er tvetydig\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: valget «%s%s» er tvetydig; muligheter:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: ukjent valg «%s%s»\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: valget «%s%s» tillater ikke argumenter\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: valget «%s%s» krever et argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: ugyldig valg -- «%c»\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: valget krever et argument -- «%c»\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: valget «%s%s» er tvetydig\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: valget «%s%s» er tvetydig; muligheter:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: ukjent valg «%s%s»\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: valget «%s%s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: valget «%s%s» krever et argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: ugyldig valg -- «%c»\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: valget krever et argument -- «%c»\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: valget «%s» er tvetydig; muligheter:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: valget «%s» er tvetydig; muligheter:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: valget «%s» er tvetydig\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valget «%s» er tvetydig\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: valget «--%s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: valget «--%s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: valget «%c%s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: valget «%c%s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: valget «--%s» krever et argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: valget «--%s» krever et argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ukjent valg «--%s»\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ukjent valg «--%s»\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ukjent valg «%c%s»\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ukjent valg «%c%s»\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: valget «-W %s» er tvetydig\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: valget «-W %s» er tvetydig\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: valget «-W %s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: valget «-W %s» tillater ikke argumenter\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: valget «-W %s» krever et argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: valget «-W %s» krever et argument\n"
diff --git a/po/ru.po b/po/ru.po
index 7080ec5..4294cca 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -2,36 +2,37 @@
# * *
# * Russian Translations for Star Traders *
# * Русский перевод для игры «Звёздные торговцы» *
-# * Copyright (C) 1990-2017, John Zaitseff *
+# * Copyright (C) 1990-2019, John Zaitseff *
# * *
# *************************************************************************
#
# This file is distributed under the same license as the trader package.
#
# Contributors:
-# John Zaitseff , 2011-2017.
+# John Zaitseff , 2011-2019.
# Vladimir B. Tsarkov , 2012.
# Pavel Maryanov , 2012.
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:38+1100\n"
"Last-Translator: Pavel Maryanov \n"
-"Language-Team: Russian \n"
+"Language-Team: Russian \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANSLATORS: The name of the game. You may choose to translate it into
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Звёздные торговцы"
@@ -57,7 +58,7 @@ msgstr "trader"
#: src/trader.c:235
#, c-format
msgid "%s: invalid value for --max-turn: '%s'\n"
-msgstr "%s: неверное значение аргумента для --maxturn: «%s»\n"
+msgstr "%s: неверное значение аргумента для --max-turn: «%s»\n"
#: src/trader.c:251
#, c-format
@@ -103,7 +104,7 @@ msgstr ""
"General Public License версии 3 или новее. Вы можете модифицировать и/или\n"
"распространять его на этих условиях. На программу не предоставляется НИКАКИХ\n"
"ГАРАНТИЙ до степени, разрешённой законом. Для получения более подробной\n"
-"информации, обратитесь к веб-странице .\n"
+"информации, обратитесь к веб-странице .\n"
#: src/trader.c:308
#, c-format
@@ -155,9 +156,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -166,10 +167,10 @@ msgstr ""
"Об ошибках сообщайте по адресу %s <%s>.\n"
"Об ошибках в русском переводе сообщайте по тому же адресу.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -708,7 +709,7 @@ msgstr "Старые акции: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Новые акции: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1585,7 +1586,7 @@ msgstr "Страница №%1$d из %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Нажмите <ПРОБЕЛ> для продолжения ] "
@@ -1612,17 +1613,17 @@ msgstr "%s: строка имеет неверный формат: «%s»"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: символ имеет неверную ширину: «%lc»"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "размеры терминала слишком малы (нужны %d на %d)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: «%s»"
@@ -1632,12 +1633,12 @@ msgstr "mkchstr: «%s»"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=?*\\/"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: неверный символ в строке: «%ls»"
@@ -1646,12 +1647,12 @@ msgstr "gettxline: неверный символ в строке: «%ls»"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Дд1+"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Нн0-"
@@ -1659,76 +1660,214 @@ msgstr "Нн0-"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Да"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Нет"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "недостаточно памяти"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: «%s»"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: «%lc»"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: неоднозначный ключ «%s%s»\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: неоднозначный ключ «%s%s»; возможности:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: неизвестный ключ «%s%s»\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: ключ «%s%s» должен использоваться без аргумента\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: ключ «%s%s» должен использоваться с аргументом\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: неверный ключ «%c»\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: ключ «%c» должен использоваться с аргументом\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: неоднозначный ключ «%s%s»\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: неоднозначный ключ «%s%s»; возможности:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: неизвестный ключ «%s%s»\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: ключ «%s%s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: ключ «%s%s» должен использоваться с аргументом\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: неверный ключ «%c»\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: ключ «%c» должен использоваться с аргументом\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: неоднозначный ключ «%s»; возможности:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: неоднозначный ключ «%s»; возможности:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: неоднозначный ключ «%s»\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: неоднозначный ключ «%s»\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ключ «--%s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: ключ «--%s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ключ «%c%s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: ключ «%c%s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: ключ «--%s» должен использоваться с аргументом\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: ключ «--%s» должен использоваться с аргументом\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: неизвестный ключ «--%s»\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: неизвестный ключ «--%s»\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: неизвестный ключ «%c%s»\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: неизвестный ключ «%c%s»\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: неоднозначный ключ «-W %s»\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: неоднозначный ключ «-W %s»\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: ключ «-W %s» должен использоваться с аргументом\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: ключ «-W %s» должен использоваться с аргументом\n"
diff --git a/po/sr.po b/po/sr.po
index 7e1137c..53ab30e 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Serbian Translation for Star Traders *
-# * Copyright (C) 2016-17, John Zaitseff *
+# * Copyright (C) 2016-19, John Zaitseff *
# * Copyright (C) 2016-17, Free Software Foundation, Inc. *
# * *
# *************************************************************************
@@ -13,24 +13,24 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:38+1100\n"
"Last-Translator: Мирослав Николић \n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANSLATORS: The name of the game. You may choose to translate it into
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Звездани трговци"
@@ -152,19 +152,19 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
msgid "Report bugs to %s <%s>.\n"
msgstr "Грешке пријавите програмеру %s <%s>.\n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -701,7 +701,7 @@ msgstr "Стари удео: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Нови удео: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1577,7 +1577,7 @@ msgstr "%1$d. страница од %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Притисните <РАЗМАК> да наставите ] "
@@ -1604,17 +1604,17 @@ msgstr "%s: ниска је у погрешном запису: „%s“"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: знак је недозвољене ширине: „%lc“"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "величина терминала је премала (потребна је %d x %d)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: НИШТА"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: „%s“"
@@ -1624,12 +1624,12 @@ msgstr "mkchstr: „%s“"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: недозвољени знак у нисци: „%ls“"
@@ -1638,12 +1638,12 @@ msgstr "gettxline: недозвољени знак у нисци: „%ls“"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "Дд"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Нн"
@@ -1651,76 +1651,214 @@ msgstr "Нн"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Да"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Не"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "нема више меморије"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: „%s“"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: НИШТА"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: „%lc“"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: опција „%s%s“ је нејасна\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: опција „%s%s“ је нејасна; могућности:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: непозната опција „%s%s“\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: опција „%s%s“ не дозвољава аргумент\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: опција „%s%s“ захтева аргумент\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: неисправна опција -- „%c“\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: опција захтева аргумент -- „%c“\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: опција „%s%s“ је нејасна\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: опција „%s%s“ је нејасна; могућности:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: непозната опција „%s%s“\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: опција „%s%s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: опција „%s%s“ захтева аргумент\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: неисправна опција -- „%c“\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: опција захтева аргумент -- „%c“\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: опција „%s“ је нејасна; могућности:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: опција „%s“ је нејасна; могућности:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: опција „%s“ је нејасна\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: опција „%s“ је нејасна\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: опција „--%s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: опција „--%s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: опција „%c%s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: опција „%c%s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: опција „--%s“ захтева аргумент\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: опција „--%s“ захтева аргумент\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: непозната опција „--%s“\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: непозната опција „--%s“\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: непозната опција „%c%s“\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: непозната опција „%c%s“\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: опција „-W %s“ је нејасна\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: опција „-W %s“ је нејасна\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: опција „-W %s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: опција „-W %s“ не дозвољава аргумент\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: опција „-W %s“ захтева аргумент\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: опција „-W %s“ захтева аргумент\n"
diff --git a/po/sv.po b/po/sv.po
index 6ab352a..d6fc2ae 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,7 +1,7 @@
# *************************************************************************
# * *
# * Swedish Translations for Star Traders *
-# * Copyright (C) 2015-17, John Zaitseff *
+# * Copyright (C) 2015-19, John Zaitseff *
# * *
# *************************************************************************
#
@@ -12,10 +12,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: trader 7.12\n"
+"Project-Id-Version: trader 7.13\n"
"Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n"
-"POT-Creation-Date: 2017-08-24 15:17+1000\n"
-"PO-Revision-Date: 2017-08-24 15:19+1000\n"
+"POT-Creation-Date: 2019-11-13 08:14+1100\n"
+"PO-Revision-Date: 2019-01-05 07:38+1100\n"
"Last-Translator: Anders Jonsson \n"
"Language-Team: Swedish \n"
"Language: sv\n"
@@ -29,7 +29,7 @@ msgstr ""
#. your own language (recommended) or keep it the same as the English
#. version. Feel free to look through other translations to see how
#. others have done this.
-#: data/trader.desktop.in:23 src/intf.c:610
+#: data/trader.desktop.in:23 src/intf.c:611
#, c-format
msgid "Star Traders"
msgstr "Star Traders"
@@ -151,9 +151,9 @@ msgstr ""
#. TRANSLATORS: The first %s is the proper name of the package
#. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
-#. the e-mail address for reporting bugs. Please add ANOTHER
-#. line with the (translated) text "Report translation bugs to
-#. \n", with ADDRESS replaced with either an e-mail
+#. the email address for reporting bugs. Please add ANOTHER line
+#. with the (translated) text "Report translation bugs to
+#. \n", with ADDRESS replaced with either an email
#. address or web URL for reporting bugs in your translation.
#: src/trader.c:334
#, c-format
@@ -162,10 +162,10 @@ msgstr ""
"Rapportera fel till %s <%s>.\n"
"Rapportera synpunkter på översättningen till \n"
-#. TRANSLATORS: %s is the e-mail address for reporting bugs. As
+#. TRANSLATORS: %s is the email address for reporting bugs. As
#. with the previous string, please add ANOTHER line with the
#. (translated) text "Report translation bugs to \n",
-#. with ADDRESS replaced with either an e-mail address or web URL
+#. with ADDRESS replaced with either an email address or web URL
#. for reporting bugs in your translation.
#: src/trader.c:341
#, c-format
@@ -705,7 +705,7 @@ msgstr "Gammal aktie: "
#: src/move.c:875
#, c-format
msgctxt "label"
-msgid "New Stock: "
+msgid "New stock: "
msgstr "Ny aktie: "
#. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to
@@ -1579,7 +1579,7 @@ msgstr "Sida %1$d av %2$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:486 src/intf.c:3035
+#: src/help.c:486 src/intf.c:3026
#, c-format
msgid "[ Press to continue ] "
msgstr "[ Tryck för att fortsätta ] "
@@ -1607,17 +1607,17 @@ msgstr "%s: sträng har felaktigt format: ”%s”"
msgid "%s: character has illegal width: '%lc'"
msgstr "%s: tecken har ogiltig bredd: ”%lc”"
-#: src/intf.c:434
+#: src/intf.c:435
#, c-format
msgid "terminal size is too small (%d x %d required)"
msgstr "terminalstorlek är för liten (%d x %d krävs)"
-#: src/intf.c:1265
+#: src/intf.c:1267
#, c-format
msgid "mkchstr_conv: NUL"
msgstr "mkchstr_conv: NUL"
-#: src/intf.c:1568
+#: src/intf.c:1559
#, c-format
msgid "mkchstr: '%s'"
msgstr "mkchstr: ”%s”"
@@ -1627,12 +1627,12 @@ msgstr "mkchstr: ”%s”"
#. character. Ideally, it should contain an easily-accessible
#. keycode that would NOT be used in ordinary input. Digits, ".",
#. ",", "+" and "-" are definitely NOT acceptable.
-#: src/intf.c:2020
+#: src/intf.c:2011
msgctxt "input|DefaultValue"
msgid "=;"
msgstr "=;"
-#: src/intf.c:2034 src/intf.c:2079
+#: src/intf.c:2025 src/intf.c:2070
#, c-format
msgid "gettxline: illegal character in string: '%ls'"
msgstr "gettxline: ogiltigt tecken i sträng: ”%ls”"
@@ -1641,12 +1641,12 @@ msgstr "gettxline: ogiltigt tecken i sträng: ”%ls”"
#. "input|No" contain the keycodes used to determine whether a
#. user is answering "Yes" or "No" in response to some question.
#. Both upper and lower-case versions should be present.
-#: src/intf.c:2952
+#: src/intf.c:2943
msgctxt "input|Yes"
msgid "Yy"
msgstr "JjYy"
-#: src/intf.c:2954
+#: src/intf.c:2945
msgctxt "input|No"
msgid "Nn"
msgstr "Nn"
@@ -1654,76 +1654,214 @@ msgstr "Nn"
#. TRANSLATORS: The strings "Yes" and "No" are printed as a
#. response to user input in answer to questions like "Are you
#. sure? [Y/N] "
-#: src/intf.c:3005
+#: src/intf.c:2996
msgctxt "answer"
msgid "Yes"
msgstr "Ja"
-#: src/intf.c:3007
+#: src/intf.c:2998
msgctxt "answer"
msgid "No"
msgstr "Nej"
-#: src/utils.c:378 src/utils.c:399
+#: src/utils.c:417 src/utils.c:438
#, c-format
msgid "%s: "
msgstr "%s: "
-#: src/utils.c:404
+#: src/utils.c:443
msgid ": "
msgstr ": "
-#: src/utils.c:417
+#: src/utils.c:456
#, c-format
msgid "out of memory"
msgstr "slut på minne"
-#: src/utils.c:1041
+#: src/utils.c:1110
#, c-format
msgid "xmbstowcs: '%s'"
msgstr "xmbstowcs: ”%s”"
-#: src/utils.c:1081
+#: src/utils.c:1150
#, c-format
msgid "xwcrtomb: NUL"
msgstr "xwcrtomb: NUL"
-#: src/utils.c:1086
+#: src/utils.c:1155
#, c-format
msgid "xwcrtomb: '%lc'"
msgstr "xwcrtomb: ”%lc”"
-#: lib/getopt.c:278
+#: lib/getopt.c:278 lib/obsolete-strings.c:45
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: flaggan ”%s%s” är tvetydig\n"
-#: lib/getopt.c:284
+#: lib/getopt.c:284 lib/obsolete-strings.c:47
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: flaggan ”%s%s” är tvetydig; möjligheter:"
-#: lib/getopt.c:319
+#: lib/getopt.c:319 lib/obsolete-strings.c:49
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: okänd flagga ”%s%s”\n"
-#: lib/getopt.c:345
+#: lib/getopt.c:345 lib/obsolete-strings.c:51
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: flaggan ”%s%s” tar inget argument\n"
-#: lib/getopt.c:360
+#: lib/getopt.c:360 lib/obsolete-strings.c:53
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: flaggan ”%s%s” kräver ett argument\n"
-#: lib/getopt.c:621
+#: lib/getopt.c:621 lib/obsolete-strings.c:55
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: ogiltig flagga -- ”%c”\n"
-#: lib/getopt.c:636 lib/getopt.c:682
+#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: flaggan kräver ett argument -- ”%c”\n"
+
+#. TRANSLATORS: These strings are used in older versions of various
+#. libraries, such as the GNU C Library as released with various
+#. Linux distributions.
+#: lib/obsolete-strings.c:44
+#, c-format
+msgid "%s: option `%s%s' is ambiguous\n"
+msgstr "%s: flaggan ”%s%s” är tvetydig\n"
+
+#: lib/obsolete-strings.c:46
+#, c-format
+msgid "%s: option `%s%s' is ambiguous; possibilities:"
+msgstr "%s: flaggan ”%s%s” är tvetydig; möjligheter:"
+
+#: lib/obsolete-strings.c:48
+#, c-format
+msgid "%s: unrecognized option `%s%s'\n"
+msgstr "%s: okänd flagga ”%s%s”\n"
+
+#: lib/obsolete-strings.c:50
+#, c-format
+msgid "%s: option `%s%s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”%s%s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:52
+#, c-format
+msgid "%s: option `%s%s' requires an argument\n"
+msgstr "%s: flaggan ”%s%s” kräver ett argument\n"
+
+#: lib/obsolete-strings.c:54
+#, c-format
+msgid "%s: invalid option -- `%c'\n"
+msgstr "%s: ogiltig flagga -- ”%c”\n"
+
+#: lib/obsolete-strings.c:56
+#, c-format
+msgid "%s: option requires an argument -- `%c'\n"
+msgstr "%s: flaggan kräver ett argument -- ”%c”\n"
+
+#: lib/obsolete-strings.c:59
+#, c-format
+msgid "%s: option `%s' is ambiguous; possibilities:"
+msgstr "%s: flaggan ”%s” är tvetydig; möjligheter:"
+
+#: lib/obsolete-strings.c:60
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: flaggan ”%s” är tvetydig; möjligheter:"
+
+#: lib/obsolete-strings.c:61
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flaggan ”%s” är tvetydig\n"
+
+#: lib/obsolete-strings.c:62
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flaggan ”%s” är tvetydig\n"
+
+#: lib/obsolete-strings.c:63
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”--%s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:64
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”--%s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:65
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”%c%s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:66
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”%c%s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:67
+#, c-format
+msgid "%s: option `--%s' requires an argument\n"
+msgstr "%s: flaggan ”--%s” kräver ett argument\n"
+
+#: lib/obsolete-strings.c:68
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: flaggan ”--%s” kräver ett argument\n"
+
+#: lib/obsolete-strings.c:69
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: okänd flagga ”--%s”\n"
+
+#: lib/obsolete-strings.c:70
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: okänd flagga ”--%s”\n"
+
+#: lib/obsolete-strings.c:71
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: okänd flagga ”%c%s”\n"
+
+#: lib/obsolete-strings.c:72
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: okänd flagga ”%c%s”\n"
+
+#: lib/obsolete-strings.c:73
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: flaggan ”-W %s” är tvetydig\n"
+
+#: lib/obsolete-strings.c:74
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flaggan ”-W %s” är tvetydig\n"
+
+#: lib/obsolete-strings.c:75
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”-W %s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:76
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan ”-W %s” tar inget argument\n"
+
+#: lib/obsolete-strings.c:77
+#, c-format
+msgid "%s: option `-W %s' requires an argument\n"
+msgstr "%s: flaggan ”-W %s” kräver ett argument\n"
+
+#: lib/obsolete-strings.c:78
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: flaggan ”-W %s” kräver ett argument\n"
diff --git a/src/Makefile.am b/src/Makefile.am
index c5121ca..e2d8ad6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,7 @@
#########################################################################
# #
# Star Traders: A Game of Interstellar Trading #
-# Copyright (C) 1990-2017, John Zaitseff #
+# Copyright (C) 1990-2019, John Zaitseff #
# #
#########################################################################
@@ -24,7 +24,7 @@
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
+# along with this program. If not, see https://www.gnu.org/licenses/.
bin_PROGRAMS = trader
diff --git a/src/README b/src/README
index 091077c..35b1bdd 100644
--- a/src/README
+++ b/src/README
@@ -1,20 +1,19 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
-This directory, src, contains the main source code for Star Traders. The
-source code is split up among the following files:
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
- trader.c trader.h - Main program, command-line interface
- globals.c globals.h - Global game constants and variables
- game.c game.h - Game start, end and (some) display functions
- move.c move.h - Functions for making and processing a move
- exch.c exch.h - Stock Exchange and Bank functions
- fileio.c fileio.h - Load and save game file functions
- help.c help.h - Help text functions: how to play the game
- intf.c intf.h - Basic text input/output functions
- utils.c utils.h - Utility functions needed by Star Traders
- system.h - All system header files are included here
+This directory, `src`, contains the main source code for Star Traders.
+The source code is split up among the following files:
+
+* `trader.c`, `trader.h`: Main program, command-line interface
+* `globals.c`, `globals.h`: Global game constants and variables
+* `game.c`, `game.h`: Game start, end and (some) display functions
+* `move.c`, `move.h`: Functions for making and processing a move
+* `exch.c`, `exch.h`: Stock Exchange and Bank functions
+* `fileio.c`, `fileio.h`: Load and save game file functions
+* `help.c`, `help.h`: Help text functions: how to play the game
+* `intf.c`, `intf.h`: Basic text input/output functions
+* `utils.c`, `utils.h`: Utility functions needed by Star Traders
+* `system.h`: All system header files are included here
diff --git a/src/exch.c b/src/exch.c
index f05f7b7..eed34c5 100644
--- a/src/exch.c
+++ b/src/exch.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -25,7 +25,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -210,10 +210,10 @@ void exchange_stock (void)
}
for (i = 0, found = false; keycode_company[i] != L'\0'; i++) {
- if (keycode_company[i] == key) {
+ if (keycode_company[i] == (wchar_t) key) {
found = true;
if (company[i].on_map) {
- selection = i;
+ selection = (selection_t) i;
} else {
beep();
}
diff --git a/src/exch.h b/src/exch.h
index 8d76aa7..a85f2af 100644
--- a/src/exch.h
+++ b/src/exch.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/fileio.c b/src/fileio.c
index bf1c67e..b423a79 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -406,7 +406,7 @@ bool load_game (int num)
lineno++;
}
- // Read in a dummy sentinal value
+ // Read in a dummy sentinel value
load_game_read_int(n, n == GAME_FILE_SENTINEL);
if (fclose(file) == EOF) {
@@ -587,7 +587,7 @@ bool save_game (int num)
fprintf(file, "%s", encbuf);
}
- // Write out a dummy sentinal value
+ // Write out a dummy sentinel value
save_game_write_int(GAME_FILE_SENTINEL);
if (fclose(file) == EOF) {
diff --git a/src/fileio.h b/src/fileio.h
index 63819b5..1a93165 100644
--- a/src/fileio.h
+++ b/src/fileio.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/game.c b/src/game.c
index 6e9d525..6b41fe1 100644
--- a/src/game.c
+++ b/src/game.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -25,7 +25,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/game.h b/src/game.h
index 9075990..a8fb349 100644
--- a/src/game.h
+++ b/src/game.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -25,7 +25,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/globals.c b/src/globals.c
index b25389e..6128339 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/globals.h b/src/globals.h
index 6ceaf8d..107b8ce 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/help.c b/src/help.c
index eb8f925..5352253 100644
--- a/src/help.c
+++ b/src/help.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/help.h b/src/help.h
index 78352d9..06eb4e7 100644
--- a/src/help.h
+++ b/src/help.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/intf.c b/src/intf.c
index d8c58f4..6994d03 100644
--- a/src/intf.c
+++ b/src/intf.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -290,7 +290,8 @@ static int mkchstr_add (wchar_t *restrict *restrict outbuf,
wchar_t *restrict *restrict lastspc,
chtype *restrict *restrict spcattr,
int *restrict widthspc, int *restrict widthbuf,
- int widthbufsize, const wchar_t *restrict *restrict str);
+ int widthbufsize,
+ const wchar_t *restrict *restrict str);
/*
@@ -1139,7 +1140,8 @@ int mkchstr_add (wchar_t *restrict *restrict outbuf,
chtype attr, int maxlines, int maxwidth, int *restrict line,
int *restrict width, wchar_t *restrict *restrict lastspc,
chtype *restrict *restrict spcattr, int *restrict widthspc,
- int *restrict widthbuf, int widthbufsize,
+ int *restrict widthbuf,
+ int widthbufsize __attribute__((unused)),
const wchar_t *restrict *restrict str)
{
int w, wspc;
@@ -1268,7 +1270,7 @@ void mkchstr_conv (chtype *restrict chbuf, int chbufsize,
// Yes, we want to convert a wide NUL, too!
n = xwcrtomb(convbuf, *wcbuf, &mbstate);
- if (chbufsize > endsize + n) {
+ if (chbufsize > (int) endsize + (int) n) {
for (p = convbuf; n > 0; n--, p++, chbuf++, chbufsize--) {
if (*p == '\0' || *p == '\n') {
/* This code assumes '\n' can never appear in a
@@ -1465,21 +1467,10 @@ int vmkchstr (chtype *restrict chbuf, int chbufsize, chtype attr_norm,
case L'N':
// Insert a monetary amount (double) into the output
- {
- /* strfmon() is not available in a wide-char
- version, so we need a multibyte char buffer */
- char *buf = xmalloc(BUFSIZE);
-
- if (l_strfmon(buf, BUFSIZE, spec->flag_nosym ? "%!n" : "%n",
- format_arg[spec->arg_num].a.a_double) < 0) {
- saved_errno = errno;
- free(buf);
- errno = saved_errno;
- goto error;
- }
-
- xmbstowcs(fmtbuf, buf, BUFSIZE);
- free(buf);
+ if (xwcsfmon(fmtbuf, BUFSIZE, spec->flag_nosym ?
+ "%!n" : "%n",
+ format_arg[spec->arg_num].a.a_double) < 0) {
+ goto error;
}
str = fmtbuf;
@@ -1763,7 +1754,7 @@ int getwch (WINDOW *win, wint_t *restrict wch)
int ret = wget_wch(win, wch);
if (ret == OK) {
- char c = wctob(*wch);
+ int c = wctob(*wch);
if ((c >= 0 && c < ' ') || c == 0x7F) {
/* Make control characters (and DEL) appear to be similar to
function keys. This assumes the KEY_xxx definitions do
@@ -1771,7 +1762,7 @@ int getwch (WINDOW *win, wint_t *restrict wch)
(due to the same codes being returned by getch()). We do
not use iswcntrl() as certain additional Unicode
characters are also control characters (eg, U+2028) */
- *wch = (unsigned char) c;
+ *wch = (wint_t) c;
ret = KEY_CODE_YES;
}
}
@@ -1835,11 +1826,11 @@ int getwch (WINDOW *win, wint_t *restrict wch)
// A valid multibyte sequence
memcpy(mbstate, &mbcopy, sizeof(mbstate_t));
- char c = wctob(val);
+ int c = wctob(val);
if ((c >= 0 && c < ' ') || c == 0x7F) {
/* Make control characters (and DEL) appear to be
similar to function keys. */
- val = (unsigned char) c;
+ val = (wchar_t) c;
ret = KEY_CODE_YES;
} else {
// An ordinary key
@@ -1938,7 +1929,7 @@ void cpos_end (const wchar_t *restrict buf, int *restrict cpos,
// cpos_dec: Adjust cpos and st: scroll to the left by w columns
void cpos_dec (const wchar_t *restrict buf, int *restrict cpos,
- int *restrict st, int w, int width)
+ int *restrict st, int w, int width __attribute__((unused)))
{
if (*cpos - w >= 0) {
// Cursor position is not yet in first column
diff --git a/src/intf.h b/src/intf.h
index c179110..ec6479b 100644
--- a/src/intf.h
+++ b/src/intf.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -25,7 +25,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/move.c b/src/move.c
index bf9d649..9a5c7c4 100644
--- a/src/move.c
+++ b/src/move.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -292,9 +292,9 @@ selection_t get_move (void)
}
for (i = 0, found = false; keycode_game_move[i] != L'\0'; i++) {
- if (keycode_game_move[i] == key) {
+ if (keycode_game_move[i] == (wchar_t) key) {
found = true;
- selection = i;
+ selection = (selection_t) i;
curs_set(CURS_OFF);
left(curwin, 1, promptend, attr_normal, attr_choice,
@@ -780,7 +780,7 @@ void try_start_new_company (int x, int y)
company[i].name);
txrefresh();
- galaxy_map[x][y] = COMPANY_TO_MAP(i);
+ galaxy_map[x][y] = (map_val_t) COMPANY_TO_MAP(i);
company[i].share_price = INITIAL_SHARE_PRICE;
company[i].share_return = INITIAL_RETURN;
@@ -872,7 +872,7 @@ void merge_companies (map_val_t a, map_val_t b)
right(curwin, lines + 4, x, attr_normal, 0, 0, 1,
/* TRANSLATORS: "New stock" refers to the company that has
absorbed the other due to a merger. */
- pgettext("label", "New Stock: "));
+ pgettext("label", "New stock: "));
leftch(curwin, lines + 4, x, chbuf_aa, 1, &width_aa);
mvwhline(curwin, lines + 6, 2, ' ' | attr_subtitle, w - 4);
@@ -986,7 +986,7 @@ void include_outpost (int num, int x, int y)
assign_vals(x, y, left, right, up, down);
- galaxy_map[x][y] = COMPANY_TO_MAP(num);
+ galaxy_map[x][y] = (map_val_t) COMPANY_TO_MAP(num);
inc_share_price(num, SHARE_PRICE_INC_OUTPOST);
// Outposts next to stars are more valuable: increment again
diff --git a/src/move.h b/src/move.h
index 8456a99..e5f9d09 100644
--- a/src/move.h
+++ b/src/move.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -57,7 +57,7 @@ extern void select_moves (void);
This function displays the galaxy map and the current moves, then waits
for the player to select one of the moves. On entry, current_player
contains the current player number; quit_selected and/or abort_game may
- be true (if so, get_move() justs returns SEL_QUIT without waiting for
+ be true (if so, get_move() just returns SEL_QUIT without waiting for
the player to select a move). The return value is the choice made by
the player.
diff --git a/src/system.h b/src/system.h
index 1c47a00..263a339 100644
--- a/src/system.h
+++ b/src/system.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -43,8 +43,10 @@
* System header files *
************************************************************************/
-#define _XOPEN_SOURCE 700 // Use SUSv4 where possible
-#define _GNU_SOURCE 1 // Use GNU extensions as well
+/* Note that the configure-generated "config.h" defines feature test
+ macros as required by the compiler or operating system C library. In
+ particular, it defines _XOPEN_SOURCE, _GNU_SOURCE, __EXTENSIONS__ and
+ similar symbols to appropriate values. */
// Headers defined by ISO/IEC 9899:1999 (C99)
diff --git a/src/trader.c b/src/trader.c
index 0d6d43d..43c9473 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -28,7 +28,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -293,7 +293,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-2017");
+"), program_name, PACKAGE_VERSION, "1990-2019");
exit(EXIT_SUCCESS);
}
@@ -327,16 +327,16 @@ playing that game. If GAME is not specified, start a new game.\n\n\
#ifdef PACKAGE_AUTHOR
/* TRANSLATORS: The first %s is the proper name of the package
author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is
- the e-mail address for reporting bugs. Please add ANOTHER
- line with the (translated) text "Report translation bugs to
- \n", with ADDRESS replaced with either an e-mail
+ the email address for reporting bugs. Please add ANOTHER line
+ with the (translated) text "Report translation bugs to
+ \n", with ADDRESS replaced with either an email
address or web URL for reporting bugs in your translation. */
printf(_("Report bugs to %s <%s>.\n"), PACKAGE_AUTHOR, PACKAGE_BUGREPORT);
#else
- /* TRANSLATORS: %s is the e-mail address for reporting bugs. As
+ /* TRANSLATORS: %s is the email address for reporting bugs. As
with the previous string, please add ANOTHER line with the
(translated) text "Report translation bugs to \n",
- with ADDRESS replaced with either an e-mail address or web URL
+ with ADDRESS replaced with either an email address or web URL
for reporting bugs in your translation. */
printf(_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT);
#endif
diff --git a/src/trader.h b/src/trader.h
index 392a9ae..3225acf 100644
--- a/src/trader.h
+++ b/src/trader.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
diff --git a/src/utils.c b/src/utils.c
index c5e5f52..81e62f6 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -44,9 +44,9 @@ struct lconv lconvinfo;
// localeconv() information, converted to wide strings
wchar_t *decimal_point; // Locale's radix character
wchar_t *thousands_sep; // Locale's thousands separator
-wchar_t *currency_symbol; // Local currency symbol
-wchar_t *mon_decimal_point; // Local monetary radix character
-wchar_t *mon_thousands_sep; // Local monetary thousands separator
+wchar_t *currency_symbol; // Locale's currency symbol
+wchar_t *mon_decimal_point; // Locale's monetary radix character
+wchar_t *mon_thousands_sep; // Locale's monetary thousands separator
/************************************************************************
@@ -56,11 +56,50 @@ wchar_t *mon_thousands_sep; // Local monetary thousands separator
#define GAME_FILENAME_PROTO "game%d"
#define GAME_FILENAME_BUFSIZE 16
-// Default values used to override POSIX locale
-#define MOD_POSIX_CURRENCY_SYMBOL "$"
-#define MOD_POSIX_FRAC_DIGITS 2
-#define MOD_POSIX_P_CS_PRECEDES 1
-#define MOD_POSIX_P_SEP_BY_SPACE 0
+// Values used to override the standard POSIX locale
+#define MOD_POSIX_DECIMAL_POINT "."
+#define MOD_POSIX_THOUSANDS_SEP ""
+#define MOD_POSIX_GROUPING ""
+#define MOD_POSIX_INT_CURR_SYMBOL ""
+#define MOD_POSIX_CURRENCY_SYMBOL "$" // Standard: ""
+#define MOD_POSIX_MON_DECIMAL_POINT "." // Standard: ""
+#define MOD_POSIX_MON_THOUSANDS_SEP ""
+#define MOD_POSIX_MON_GROUPING ""
+#define MOD_POSIX_POSITIVE_SIGN ""
+#define MOD_POSIX_NEGATIVE_SIGN "-" // Standard: ""
+#define MOD_POSIX_INT_FRAC_DIGITS 2 // Standard: CHAR_MAX
+#define MOD_POSIX_FRAC_DIGITS 2 // Standard: CHAR_MAX
+#define MOD_POSIX_P_CS_PRECEDES 1 // Standard: CHAR_MAX
+#define MOD_POSIX_P_SEP_BY_SPACE 0 // Standard: CHAR_MAX
+#define MOD_POSIX_N_CS_PRECEDES 1 // Standard: CHAR_MAX
+#define MOD_POSIX_N_SEP_BY_SPACE 0 // Standard: CHAR_MAX
+#define MOD_POSIX_P_SIGN_POSN 1 // Standard: CHAR_MAX
+#define MOD_POSIX_N_SIGN_POSN 1 // Standard: CHAR_MAX
+
+static const struct lconv mod_posix_lconv =
+ {
+ .decimal_point = MOD_POSIX_DECIMAL_POINT,
+ .thousands_sep = MOD_POSIX_THOUSANDS_SEP,
+ .grouping = MOD_POSIX_GROUPING,
+ .int_curr_symbol = MOD_POSIX_INT_CURR_SYMBOL,
+ .currency_symbol = MOD_POSIX_CURRENCY_SYMBOL,
+ .mon_decimal_point = MOD_POSIX_MON_DECIMAL_POINT,
+ .mon_thousands_sep = MOD_POSIX_MON_THOUSANDS_SEP,
+ .mon_grouping = MOD_POSIX_MON_GROUPING,
+ .positive_sign = MOD_POSIX_POSITIVE_SIGN,
+ .negative_sign = MOD_POSIX_NEGATIVE_SIGN,
+ .int_frac_digits = MOD_POSIX_INT_FRAC_DIGITS,
+ .frac_digits = MOD_POSIX_FRAC_DIGITS,
+ .p_cs_precedes = MOD_POSIX_P_CS_PRECEDES,
+ .p_sep_by_space = MOD_POSIX_P_SEP_BY_SPACE,
+ .n_cs_precedes = MOD_POSIX_N_CS_PRECEDES,
+ .n_sep_by_space = MOD_POSIX_N_SEP_BY_SPACE,
+ .p_sign_posn = MOD_POSIX_P_SIGN_POSN,
+ .n_sign_posn = MOD_POSIX_N_SIGN_POSN
+
+ // ISO/IEC 9945-1:2008 (SUSv4) defines additional fields, but
+ // this program does not use them.
+ };
// Constants used for scrambling and unscrambling game data
#define SCRAMBLE_CRC_LEN 8 // Length of CRC in ASCII (excl NUL)
@@ -186,7 +225,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 bool add_currency_symbol = false; // Do we need to add "$"?
+static bool is_posix_locale = false; // Override strfmon()?
/************************************************************************
@@ -202,11 +241,11 @@ static bool add_currency_symbol = false; // Do we need to add "$"?
Returns: (nothing)
This function copies n bytes from *src into *dest, applying a XOR with
- the contents of xor_table in the process. It is a reversable function:
+ the contents of xor_table in the process. It is a reversible function:
apply_xor(apply_xor(buffer)) == buffer. It is used by both scramble()
and unscramble().
*/
-static void apply_xor (void *restrict dest, const void *restrict src,
+static void apply_xor (char *restrict dest, const char *restrict src,
size_t n, unsigned int *restrict key);
@@ -484,24 +523,24 @@ void init_locale (void)
lc = localeconv();
assert(lc != NULL);
+ is_posix_locale = false;
lconvinfo = *lc;
- add_currency_symbol = false;
-
/* Are we in the POSIX locale? The string returned by setlocale() is
supposed to be opaque, but in practise is not. To be on the safe
side, we explicitly set the locale to "C", then test the returned
value of that, too. */
cloc = setlocale(LC_MONETARY, "C");
- if ( strcmp(cur, cloc) == 0
- || strcmp(cur, "POSIX") == 0 || strcmp(cur, "C") == 0
- || strcmp(cur, "C.UTF-8") == 0 || strcmp(cur, "C.utf8") == 0) {
+ if ( strcmp(cur, cloc) == 0
+ || strcmp(cur, "POSIX") == 0
+ || strcmp(cur, "POSIX.UTF-8") == 0
+ || strcmp(cur, "POSIX.utf8") == 0
+ || strcmp(cur, "C") == 0
+ || strcmp(cur, "C.UTF-8") == 0
+ || strcmp(cur, "C.utf8") == 0) {
- add_currency_symbol = true;
- lconvinfo.currency_symbol = MOD_POSIX_CURRENCY_SYMBOL;
- lconvinfo.frac_digits = MOD_POSIX_FRAC_DIGITS;
- lconvinfo.p_cs_precedes = MOD_POSIX_P_CS_PRECEDES;
- lconvinfo.p_sep_by_space = MOD_POSIX_P_SEP_BY_SPACE;
+ is_posix_locale = true;
+ lconvinfo = mod_posix_lconv;
}
// Convert localeconv() information to wide strings
@@ -531,62 +570,92 @@ void init_locale (void)
/***********************************************************************/
-// l_strfmon: Convert monetary value to a string
+// xwcsfmon: Convert monetary value to a wide-character string
-ssize_t l_strfmon (char *restrict buf, size_t maxsize,
- const char *restrict format, double val)
+ssize_t xwcsfmon (wchar_t *restrict buf, size_t maxsize,
+ const char *restrict format, double val)
{
- /* The current implementation assumes MOD_POSIX_P_CS_PRECEDES is 1
- (currency symbol precedes value) and that MOD_POSIX_P_SEP_BY_SPACE
- is 0 (no space separates currency symbol and value). It does,
- however, handle currency symbols of length > 1. */
+ ssize_t n;
+ char *s = xmalloc(BUFSIZE);
- assert(MOD_POSIX_P_CS_PRECEDES == 1);
- assert(MOD_POSIX_P_SEP_BY_SPACE == 0);
- ssize_t ret = strfmon(buf, maxsize, format, val);
+ /* Current and previous versions of ISO/IEC 9945-1 (POSIX), namely
+ SUSv3 (2001) and SUSv4 (2008), require strfmon() to return rather
+ meaningless strings when used with the POSIX "C" locale. In
+ particular, the standard POSIX locale does not define a currency
+ symbol, a monetary radix symbol (decimal point) or a negative
+ sign. This means strfmon(..., "%n", -123.45) is supposed to
+ produce "12345" instead of something like "-$123.45"! The
+ following code overcomes these limitations by using snprintf(). */
- if (ret > 0 && add_currency_symbol) {
- if (strstr(format, "!") == NULL) {
- /* Insert lconvinfo.currency_symbol to s.
+ if (! is_posix_locale) {
+ n = strfmon(s, BUFSIZE, format, val);
+ } else {
+ /* The current implementation assumes the monetary decimal point
+ is overridden to "." (ie, MOD_POSIX_MON_DECIMAL_POINT == "."),
+ the currency symbol is to precede the value, no spaces are to
+ separate currency symbol and value, and sign is to precede
+ both currency symbol and value. */
+ assert(MOD_POSIX_P_CS_PRECEDES == 1);
+ assert(MOD_POSIX_P_SEP_BY_SPACE == 0);
+ assert(MOD_POSIX_N_CS_PRECEDES == 1);
+ assert(MOD_POSIX_N_SEP_BY_SPACE == 0);
+ assert(MOD_POSIX_P_SIGN_POSN == 1);
+ assert(MOD_POSIX_N_SIGN_POSN == 1);
- NB: add_currecy_symbol == true assumes a POSIX locale and
- that the character encoding is ASCII-safe (such as by
- being ASCII itself, or UTF-8). */
- const char *sym = lconvinfo.currency_symbol;
- int symlen = strlen(sym);
- char *p;
- int spc;
+# define MOD_POSIX_q(s) MOD_POSIX_qq(s)
+# define MOD_POSIX_qq(s) #s
- assert(maxsize > (unsigned int) symlen);
+# define MOD_POSIX_FMT_POS MOD_POSIX_POSITIVE_SIGN MOD_POSIX_CURRENCY_SYMBOL "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f"
+# define MOD_POSIX_FMT_NEG MOD_POSIX_NEGATIVE_SIGN MOD_POSIX_CURRENCY_SYMBOL "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f"
+# define MOD_POSIX_FMT_POS_NOSYM MOD_POSIX_POSITIVE_SIGN "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f"
+# define MOD_POSIX_FMT_NEG_NOSYM MOD_POSIX_NEGATIVE_SIGN "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f"
- // Count number of leading spaces
- for (p = buf, spc = 0; *p == ' '; p++, spc++)
- ;
-
- if (symlen <= spc) {
- /* Enough space for currency symbol: copy it WITHOUT
- copying terminating NUL character */
- for (p -= symlen; *sym != '\0'; p++, sym++) {
- *p = *sym;
- }
+ if (strcmp(format, "%n") == 0) {
+ if (val >= 0.0) {
+ n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_POS, val);
} else {
- // Make space for currency symbol, then copy it
+ n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_NEG, -val);
+ }
+ } else if (strcmp(format, "%!n") == 0) {
+ if (val >= 0.0) {
+ n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_POS_NOSYM, val);
+ } else {
+ n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_NEG_NOSYM, -val);
+ }
+ } else {
+ // Other strfmon() formats are not supported
+ errno = EINVAL;
+ n = -1;
+ }
+ }
- memmove(buf + symlen - spc, buf, maxsize - (symlen - spc));
- buf[maxsize - 1] = '\0';
+ if (n >= BUFSIZE) {
+ // Truncate the too-long output with a terminating NUL
+ s[BUFSIZE - 1] = '\0';
+ }
- for ( ; *sym != '\0'; sym++, buf++) {
- // Make sure terminating NUL character is NOT copied!
- *buf = *sym;
- }
+ if (n >= 0) {
+ xmbstowcs(buf, s, maxsize);
- ret = MIN((unsigned int) ret + symlen - spc, maxsize - 1);
+ /* Some buggy implementations of strfmon(), such as that on
+ FreeBSD and Cygwin, assume localeconv.mon_thousands_sep and
+ similar strings contain either a single char or NUL instead of
+ a multibyte character string. However, this assumption fails
+ on locales such as ru_RU.UTF-8 which use U+00A0 NO-BREAK SPACE
+ for mon_thousands_sep (stored in UTF-8 as 0xC2 0xA0. As a
+ result, incomplete character sequences are copied, which are
+ translated to EILSEQ_REPL_WC characters by xmbstowcs() above.
+ Fix such characters by replacing them with a space. */
+ for (wchar_t *p = buf; *p != L'\0'; p++) {
+ if (*p == EILSEQ_REPL_WC) {
+ *p = L' ';
}
}
}
- return ret;
+ free(s);
+ return n;
}
@@ -743,11 +812,11 @@ char *unscramble (char *restrict dest, const char *restrict src,
return NULL;
}
- // Descramble xorbuf using *key, ignoring CRC32 in front
+ // Unscramble xorbuf using *key, ignoring CRC32 in front
apply_xor(dest, midxor, xorlen - SCRAMBLE_CRC_LEN, key);
// Convert the output to a C string
- assert(size >= xorlen - SCRAMBLE_CRC_LEN + 1);
+ assert(size >= (size_t) xorlen - SCRAMBLE_CRC_LEN + 1);
dest[xorlen - SCRAMBLE_CRC_LEN] = '\0';
free(xorbuf);
@@ -760,7 +829,7 @@ char *unscramble (char *restrict dest, const char *restrict src,
/***********************************************************************/
// apply_xor: Scramble a buffer using xor_table
-void apply_xor (void *restrict dest, const void *restrict src,
+void apply_xor (char *restrict dest, const char *restrict src,
size_t n, unsigned int *restrict key)
{
assert(dest != NULL);
@@ -868,13 +937,13 @@ ssize_t b64decode (const void *restrict in, size_t inlen,
assert(u_in != NULL);
assert(u_out != NULL);
assert(outlen > 0);
+ assert(UNSCRAMBLE_TABLE_SIZE == UCHAR_MAX + 1);
count = 0;
n = 1;
for (size_t i = 0; i < inlen && *u_in != '\0'; i++, u_in++) {
- int v = *u_in > UNSCRAMBLE_TABLE_SIZE ?
- UNSCRAMBLE_INVALID : unscramble_table[*u_in];
+ int v = unscramble_table[*u_in];
switch (v) {
case UNSCRAMBLE_INVALID:
@@ -1080,8 +1149,8 @@ size_t xwcrtomb (char *restrict dest, wchar_t wc, mbstate_t *restrict mbstate)
if ((n = wcrtomb(dest, L'\0', &mbcopy)) == (size_t) -1) {
errno_exit(_("xwcrtomb: NUL"));
}
- dest[n] = EILSEQ_REPL;
- dest[n++] = '\0';
+ dest[n++] = EILSEQ_REPL;
+ dest[n] = '\0';
} else {
errno_exit(_("xwcrtomb: '%lc'"), (wint_t) wc);
}
diff --git a/src/utils.h b/src/utils.h
index db596fd..fb434c0 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -1,7 +1,7 @@
/************************************************************************
* *
* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2017, John Zaitseff *
+* Copyright (C) 1990-2019, John Zaitseff *
* *
************************************************************************/
@@ -24,7 +24,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see http://www.gnu.org/licenses/.
+ along with this program. If not, see https://www.gnu.org/licenses/.
*/
@@ -87,9 +87,9 @@ extern void init_program_name (const char *argv0);
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 existance or
- writability of this pathname is NOT checked by this function. NULL is
- returned if the home directory cannot be determined.
+ 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);
@@ -102,8 +102,9 @@ extern const char *home_directory (void);
This function returns the full pathname to a potentially-writable
subdirectory within the user's home directory. Essentially, this
function returns home_directory() + "/." + program_name. Note that
- this path is NOT created by this function, nor is the writability of
- this path checked. NULL is returned if this path cannot be determined.
+ this path is NOT created by this function, nor is the ability to write
+ to this path checked. NULL is returned if this path cannot be
+ determined.
*/
extern const char *data_directory (void);
@@ -238,21 +239,20 @@ extern void init_locale (void);
/*
- Function: l_strfmon - Convert monetary value to a string
- Parameters: buf - Buffer to receive result
- maxsize - Maximum size of buffer
- format - strfmon() format to use
- val - Monetary value to convert
- Returns: ssize_t - Size of returned string
+ Function: xwcsfmon - Convert monetary value to a wide-character string
+ Parameters: buf - Buffer to receive result
+ maxsize - Maximum size of buffer, in multiples of wchar_t
+ format - strfmon() format to use
+ val - Monetary value to convert
+ Returns: ssize_t - Size of returned string
This function calls strfmon() to convert val to a suitable monetary
- value string. If the POSIX or C locale is in effect, and "!" does NOT
- appear in the format, "$" is inserted into the resulting string. This
- function overcomes the limitation that the POSIX locale does not define
- anything for localeconv()->currency_symbol.
+ value string, then converts the result to a wide-character string and
+ places it in buf. It makes appropriate adjustments to the output if
+ the POSIX locale is in effect or if the locale uses no-break spaces.
*/
-extern ssize_t l_strfmon (char *restrict buf, size_t maxsize,
- const char *restrict format, double val);
+extern ssize_t xwcsfmon (wchar_t *restrict buf, size_t maxsize,
+ const char *restrict format, double val);
/************************************************************************