diff --git a/COPYING b/COPYING
index 02ac6ac..ced3565 100644
--- a/COPYING
+++ b/COPYING
@@ -1,683 +1,741 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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 2ae96eb..bdf1803 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,160 +1,161 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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) or the
+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: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.
+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.
- In actual fact, Star Traders uses the GNU Portability Library, so many
- older systems may also work without modification.
+ In actual fact, Star Traders uses the GNU Portability Library, so
+ many older systems may also work without modification.
-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.
+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.
-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.
+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.
-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.
+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.
+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.
+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`__.
- https://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
- Don't use Native Language Support. Star Traders will only
- show untranslated US English text and only accept US ASCII
- keyboard input.
-
+ 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
- "#include" directives).
-
+ 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.
-
+ 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.
-
+ 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.
-
+ 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.
-
+ 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.
-
+ 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 assert() statements.
+ 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.13, 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.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).
- https://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
@@ -162,84 +163,88 @@ 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 test-
-ed with this version of Star Traders:
+The following operating systems and compilers have been successfully
+tested with this version of Star Traders:
-+-------------------------+--------+-------+-------------------------+---+
-| Linux distribution | Arch | Glibc | Compiler | N |
-+-------------------------+--------+-------+-------------------------+---+
-| Debian GNU/Linux Sid | x86_64 | 2.27 | GNU C Compiler 8.2.0 | |
-| Debian GNU/Linux Sid | i686 | 2.27 | GNU C Compiler 8.2.0 | |
-| Debian GNU/Linux 9.5 | x86_64 | 2.24 | GNU C Compiler 6.3.0 | |
-| Ubuntu 18.04 | x86_64 | 2.27 | GNU C Compiler 7.3.0 | |
-| Ubuntu 18.04 | x86_64 | 2.27 | Clang (LLVM) 6.0.0 | |
-| Ubuntu 18.04 | x86_64 | 2.27 | Portland PGI C/C++ 18.5 | |
-| Fedora 28 | x86_64 | 2.27 | GNU C Compiler 8.1.1 | |
-| CentOS 7.5 | 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 | Portland PGI C/C++ 18.3 | |
-| CentOS 6.9 | x86_64 | 2.12 | Intel C/C++ 18.0.3 | |
-| OpenSUSE Leap 15.0 | x86_64 | 2.26 | GNU C Compiler 7.3.1 | |
-+-------------------------+--------+-------+-------------------------+---+
+==================== ====== ===== ======================= =====
+Linux distribution Arch Glibc Compiler Notes
+==================== ====== ===== ======================= =====
+Debian GNU/Linux Sid x86_64 2.27 GNU C Compiler 8.2.0
+Debian GNU/Linux Sid i686 2.27 GNU C Compiler 8.2.0
+Debian GNU/Linux 9.5 x86_64 2.24 GNU C Compiler 6.3.0
+Ubuntu 18.04 x86_64 2.27 GNU C Compiler 7.3.0
+Ubuntu 18.04 x86_64 2.27 Clang (LLVM) 6.0.0
+Ubuntu 18.04 x86_64 2.27 Portland PGI C/C++ 18.5
+Fedora 28 x86_64 2.27 GNU C Compiler 8.1.1
+CentOS 7.5 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 Portland PGI C/C++ 18.3
+CentOS 6.9 x86_64 2.12 Intel C/C++ 18.0.3
+OpenSUSE Leap 15.0 x86_64 2.26 GNU C Compiler 7.3.1
+==================== ====== ===== ======================= =====
-+-------------------------+--------+---------------------------------+---+
-| Operating system | Arch | Compiler | N |
-+-------------------------+--------+---------------------------------+---+
-| FreeBSD 11.2 | x86_64 | Clang (LLVM) 6.0.0 | 1 |
-| NetBSD 8.0 | x86_64 | GNU C Compiler 5.5.0 | 2 |
-| macOS 10.13 | x86_64 | Apple Clang (LLVM) 9.1.0 | 3 |
-| Solaris 11.3 (x86_64) | i386 | GNU C Compiler 4.8.2 | |
-| Solaris 11.3 (x86_64) | x86_64 | GNU C Compiler 4.8.2 | 4 |
-| Solaris 11.3 (x86_64) | i386 | Oracle Developer Studio 12.6 | 5 |
-| Solaris 11.3 (x86_64) | x86_64 | Oracle Developer Studio 12.6 | 6 |
-| Cygwin 2.10.0 (Win7SP1) | i686 | GNU C Compiler 7.3.0 | |
-+-------------------------+--------+---------------------------------+---+
+======================= ====== ============================ ============
+Operating system Arch Compiler Notes
+======================= ====== ============================ ============
+FreeBSD 11.2 x86_64 Clang (LLVM) 6.0.0 [#freebsd1]_
+NetBSD 8.0 x86_64 GNU C Compiler 5.5.0 [#netbsd1]_
+macOS 10.13 x86_64 Apple Clang (LLVM) 9.1.0 [#macos1]_
+Solaris 11.3 (x86_64) i386 GNU C Compiler 4.8.2
+Solaris 11.3 (x86_64) x86_64 GNU C Compiler 4.8.2 [#solaris1]_
+Solaris 11.3 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris2]_
+Solaris 11.3 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_
+Cygwin 2.10.0 (Win7SP1) i686 GNU C Compiler 7.3.0
+======================= ====== ============================ ============
Notes:
-1. FreeBSD with the gettext, gettext-runtime, gettext-tools and libiconv
- binary packages installed with "pkg", using:
+.. [#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
-2. NetBSD with the gettext, libiconv and ncursesw packages installed with
- "pkg_add", using:
+.. [#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 \
@@ -247,121 +252,130 @@ Notes:
CURSES_CFLAGS=-I/usr/pkg/include \
LDFLAGS=-L/usr/pkg/lib
-3. macOS with the gettext package installed with Homebrew, using:
+.. [#macos1] macOS with the ``gettext`` package installed with Homebrew,
+ using::
./configure --with-libintl-prefix=/usr/local/opt/gettext
-4. Using "./configure CC='gcc -m64'" for 64-bit user-space.
-5. Using "./configure CC='/opt/developerstudio12.6/bin/cc'".
-6. Using "./configure CC='/opt/developerstudio12.6/bin/cc -m64'".
+.. [#solaris1] Using ``./configure CC='gcc -m64'`` for 64-bit user-space.
-The following systems are known not to work at the current time; this list
-is almost certainly not exhaustive:
+.. [#solaris2] Using ``./configure CC='/opt/developerstudio12.6/bin/cc'``.
-+-------------------------+--------+---------------------------------+---+
-| Operating system | Arch | Compiler | N |
-+-------------------------+--------+---------------------------------+---+
-| OpenBSD 6.3 | x86_64 | GNU C Compiler 4.2.1 | 1 |
-| OpenBSD 6.3 | x86_64 | Clang (LLVM) 5.0.1 | 1 |
-+-------------------------+--------+---------------------------------+---+
+.. [#solaris3] Using ``./configure 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.3 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_
+OpenBSD 6.3 x86_64 Clang (LLVM) 5.0.1 [#openbsd1]_
+================ ====== ==================== ============
Notes:
-1. The OpenBSD C library does not include nor its associated
- functions, particularly strfmon().
+.. [#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 (https://www.gnu.org/software/autoconf/)
-2. Automake v1.15 or later (https://www.gnu.org/software/automake/)
-3. pkg-config v0.9.0 or later (https://pkg-config.freedesktop.org/)
-4. GNU Portability Library (https://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:
+Once you have finished your translation, please submit the PO file to the
+Translation Project (TP). See the `TP Star Traders`__ web page or read
+their `Translators and the TP`__ page for additional information.
- https://translationproject.org/domain/trader.html
+__ https://translationproject.org/domain/trader.html
+__ https://translationproject.org/html/translators.html
-More information for translators is available at:
-
- https://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/NEWS b/NEWS
index 720276f..cb3aa13 100644
--- a/NEWS
+++ b/NEWS
@@ -1,40 +1,50 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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: https://www.zap.org.au/cgit/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/cgit/trader.git
+__ https://www.zap.org.au/
+
+
+.. contents::
Version 7.13 (not yet released)
-------------------------------
-Modified the code to work more reliably on non-GNU C Library (glibc) plat-
-forms, particularly FreeBSD, Solaris and Cygwin, when using the standard
-POSIX locale. Extensively tested the build procedure on multiple operat-
-ing 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.
+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.
-Added the Spanish translation, with thanks to Francisco Javier Serrador.
+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.
+
+Added the Spanish translation, with thanks to Francisco Javier Serrador.
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 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.
+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)
@@ -46,40 +56,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)
@@ -91,169 +105,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 3ff4516..e84be5f 100644
--- a/README
+++ b/README
@@ -1,81 +1,79 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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: https://www.zap.org.au/software/trader/
- FTP: https://ftp.zap.org.au/pub/trader/
- 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/software/trader/
+ :FTP: | https://ftp.zap.org.au/pub/trader/
+ | ftp://ftp.zap.org.au/pub/trader/
Copyright
=========
-Copyright (C) 1990-2019, 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 436a528..ed186fd 100644
--- a/build-aux/README
+++ b/build-aux/README
@@ -1,17 +1,16 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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/data/README b/data/README
index c6e1841..6806512 100644
--- a/data/README
+++ b/data/README
@@ -1,9 +1,8 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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/doc/README b/doc/README
index a9034f8..c09bd9b 100644
--- a/doc/README
+++ b/doc/README
@@ -1,9 +1,9 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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/lib/README b/lib/README
index 359b328..af32813 100644
--- a/lib/README
+++ b/lib/README
@@ -1,20 +1,23 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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
-https://www.gnu.org/software/gnulib/ for more information.
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
-The following file is used by xopen-source.m4 to redefine _XOPEN_SOURCE
-appropriately. It is not part of the GNU Portability Library:
+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.
- xopen-source.h
+__ https://www.gnu.org/software/gnulib/
-The following file provides translatable strings for obsolete versions of
+
+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
+* `obsolete-strings.c`
diff --git a/m4/README b/m4/README
index e320df0..ed3e53d 100644
--- a/m4/README
+++ b/m4/README
@@ -1,28 +1,34 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, John Zaitseff *
-* *
-**************************************************************************
+.. -*- mode: rst; coding: utf-8 -*-
+
+============================================
+Star Traders: A Game of Interstellar Trading
+============================================
+
+This directory, `m4`, contains M4 macros used by Autoconf.
-This directory, m4, contains M4 macros used by Autoconf.
The following macro is custom-defined for Star Traders:
- xopen-source.m4
+* `xopen-source.m4`
-The following macros are from the Autoconf Archive project, as detailed on
-that project's web site, https://www.gnu.org/software/autoconf-archive/:
- 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
+The following macros are from the `Autoconf Archive project`__, as
+detailed on that project’s web site:
-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, https://www.gnu.org/software/gnulib/:
+* `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
+__ 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/po/README b/po/README
index 094829c..f961f35 100644
--- a/po/README
+++ b/po/README
@@ -1,9 +1,10 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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/src/README b/src/README
index 3e1b1a2..35b1bdd 100644
--- a/src/README
+++ b/src/README
@@ -1,20 +1,19 @@
-**************************************************************************
-* *
-* Star Traders: A Game of Interstellar Trading *
-* Copyright (C) 1990-2019, 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