diff --git a/.gitattributes b/.gitattributes index e42c973..3827ab4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,6 +5,9 @@ Makefile.am ident /data/trader.desktop.in ident /data/trader.svg ident /doc/trader.* ident +/lib/obsolete-strings.c ident +/lib/xopen-source.h ident +/m4/xopen-source.m4 ident /po/LINGUAS ident /po/Makevars ident /po/POTFILES.in ident diff --git a/COPYING b/COPYING index 5e5d6d0..ced3565 100644 --- a/COPYING +++ b/COPYING @@ -1,683 +1,741 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -The Star Traders game is free software that is distributed under the terms -of the GNU General Public License. The actual copyright on this program -("the Program", in the language of the License) belongs to John Zaitseff, -although the text of the License itself belongs to the Free Software -Foundation. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -Even though the GNU General Public License does NOT require you to send -your modifications back to the author, it is considered "good form" to do -so, as this allows your modifications to be incorporated into future +**Copyright © 1990–2019, John Zaitseff.** + +The Star Traders game is free software that is distributed under the +terms of the GNU General Public License. The actual copyright on this +program (“the Program”, in the language of the License) belongs to John +Zaitseff, although the text of the License itself belongs to the Free +Software Foundation. + +Even though the GNU General Public License does *not* require you to send +your modifications back to the author, it is considered “good form” to do +so, as this allows your modifications to be incorporated into future versions of the program, allowing others to benefit from them. --------------------------------------------------------------------------- - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 +========================== +GNU GENERAL PUBLIC LICENSE +========================== +-------------------------- + Version 3, 29 June 2007 +-------------------------- - Copyright (C) 2007 Free Software Foundation, Inc. +| Copyright © 2007 Free Software Foundation, Inc. +| https://fsf.org/ - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. + *Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed.* - Preamble -The GNU General Public License is a free, copyleft license for software +Preamble +======== + +The GNU General Public License is a free, copyleft license for software and other kinds of works. -The licenses for most software and other practical works are designed to -take away your freedom to share and change the works. By contrast, the -GNU General Public License is intended to guarantee your freedom to share -and change all versions of a program---to make sure it remains free -software for all its users. We, the Free Software Foundation, use the GNU -General Public License for most of our software; it applies also to any -other work released this way by its authors. You can apply it to your -programs, too. +The licenses for most software and other practical works are designed to +take away your freedom to share and change the works. By contrast, the +GNU General Public License is intended to guarantee your freedom to share +and change all versions of a program—to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. -When we speak of free software, we are referring to freedom, not price. -Our General Public Licenses are designed to make sure that you have the -freedom to distribute copies of free software (and charge for them if you -wish), that you receive source code or can get it if you want it, that you -can change the software or use pieces of it in new free programs, and that -you know you can do these things. +When we speak of free software, we are referring to freedom, not price. +Our General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for them if you +wish), that you receive source code or can get it if you want it, that +you can change the software or use pieces of it in new free programs, and +that you know you can do these things. -To protect your rights, we need to prevent others from denying you these -rights or asking you to surrender the rights. Therefore, you have certain -responsibilities if you distribute copies of the software, or if you -modify it: responsibilities to respect the freedom of others. +To protect your rights, we need to prevent others from denying you these +rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. -For example, if you distribute copies of such a program, whether gratis or -for a fee, you must pass on to the recipients the same freedoms that you -received. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their +For example, if you distribute copies of such a program, whether gratis +or for a fee, you must pass on to the recipients the same freedoms that +you received. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their rights. -Developers that use the GNU GPL protect your rights with two steps: (1) -assert copyright on the software, and (2) offer you this License giving -you legal permission to copy, distribute and/or modify it. +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. -For the developers' and authors' protection, the GPL clearly explains that -there is no warranty for this free software. For both users' and authors' -sake, the GPL requires that modified versions be marked as changed, so -that their problems will not be attributed erroneously to authors of -previous versions. +For the developers’ and authors’ protection, the GPL clearly explains +that there is no warranty for this free software. For both users’ and +authors’ sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. -Some devices are designed to deny users access to install or run modified -versions of the software inside them, although the manufacturer can do so. -This is fundamentally incompatible with the aim of protecting users' -freedom to change the software. The systematic pattern of such abuse -occurs in the area of products for individuals to use, which is precisely -where it is most unacceptable. Therefore, we have designed this version -of the GPL to prohibit the practice for those products. If such problems -arise substantially in other domains, we stand ready to extend this -provision to those domains in future versions of the GPL, as needed to +Some devices are designed to deny users access to install or run modified +versions of the software inside them, although the manufacturer can do +so. This is fundamentally incompatible with the aim of protecting users’ +freedom to change the software. The systematic pattern of such abuse +occurs in the area of products for individuals to use, which is precisely +where it is most unacceptable. Therefore, we have designed this version +of the GPL to prohibit the practice for those products. If such problems +arise substantially in other domains, we stand ready to extend this +provision to those domains in future versions of the GPL, as needed to protect the freedom of users. -Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could make -it effectively proprietary. To prevent this, the GPL assures that patents -cannot be used to render the program non-free. +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. -The precise terms and conditions for copying, distribution and +The precise terms and conditions for copying, distribution and modification follow. - TERMS AND CONDITIONS - 0. Definitions. +TERMS AND CONDITIONS +==================== -"This License" refers to version 3 of the GNU General Public License. +0. Definitions. +--------------- -"Copyright" also means copyright-like laws that apply to other kinds of +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. -"The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. +“The Program” refers to any copyrightable work licensed under this +License. Each licensee is addressed as “you”. “Licensees” and +“recipients” may be individuals or organizations. -To "modify" a work means to copy from or adapt all or part of the work in -a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. +To “modify” a work means to copy from or adapt all or part of the work in +a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a “modified version” of the +earlier work or a work “based on” the earlier work. -A "covered work" means either the unmodified Program or a work based on +A “covered work” means either the unmodified Program or a work based on the Program. -To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for infringement -under applicable copyright law, except executing it on a computer or -modifying a private copy. Propagation includes copying, distribution -(with or without modification), making available to the public, and in -some countries other activities as well. +To “propagate” a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. -To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through a -computer network, with no transfer of a copy, is not conveying. +To “convey” a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. -An interactive user interface displays "Appropriate Legal Notices" to the -extent that it includes a convenient and prominently visible feature that -(1) displays an appropriate copyright notice, and (2) tells the user that -there is no warranty for the work (except to the extent that warranties -are provided), that licensees may convey the work under this License, and -how to view a copy of this License. If the interface presents a list of -user commands or options, such as a menu, a prominent item in the list +An interactive user interface displays “Appropriate Legal Notices” to the +extent that it includes a convenient and prominently visible feature that +(1) displays an appropriate copyright notice, and (2) tells the user that +there is no warranty for the work (except to the extent that warranties +are provided), that licensees may convey the work under this License, and +how to view a copy of this License. If the interface presents a list of +user commands or options, such as a menu, a prominent item in the list meets this criterion. - 1. Source Code. -The "source code" for a work means the preferred form of the work for -making modifications to it. "Object code" means any non-source form of a +1. Source Code. +--------------- + +The “source code” for a work means the preferred form of the work for +making modifications to it. “Object code” means any non-source form of a work. -A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that is +A “Standard Interface” means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that is widely used among developers working in that language. -The "System Libraries" of an executable work include anything, other than -the work as a whole, that (a) is included in the normal form of packaging -a Major Component, but which is not part of that Major Component, and (b) -serves only to enable use of the work with that Major Component, or to -implement a Standard Interface for which an implementation is available to -the public in source code form. A "Major Component", in this context, -means a major essential component (kernel, window system, and so on) of -the specific operating system (if any) on which the executable work runs, -or a compiler used to produce the work, or an object code interpreter used -to run it. +The “System Libraries” of an executable work include anything, other than +the work as a whole, that (a) is included in the normal form of packaging +a Major Component, but which is not part of that Major Component, and +(b) serves only to enable use of the work with that Major Component, or +to implement a Standard Interface for which an implementation is +available to the public in source code form. A “Major Component”, in +this context, means a major essential component (kernel, window system, +and so on) of the specific operating system (if any) on which the +executable work runs, or a compiler used to produce the work, or an +object code interpreter used to run it. -The "Corresponding Source" for a work in object code form means all the -source code needed to generate, install, and (for an executable work) run -the object code and to modify the work, including scripts to control those -activities. However, it does not include the work's System Libraries, or -general-purpose tools or generally available free programs which are used -unmodified in performing those activities but which are not part of the -work. For example, Corresponding Source includes interface definition -files associated with source files for the work, and the source code for -shared libraries and dynamically linked subprograms that the work is -specifically designed to require, such as by intimate data communication -or control flow between those subprograms and other parts of the work. +The “Corresponding Source” for a work in object code form means all the +source code needed to generate, install, and (for an executable work) run +the object code and to modify the work, including scripts to control +those activities. However, it does not include the work’s System +Libraries, or general-purpose tools or generally available free programs +which are used unmodified in performing those activities but which are +not part of the work. For example, Corresponding Source includes +interface definition files associated with source files for the work, and +the source code for shared libraries and dynamically linked subprograms +that the work is specifically designed to require, such as by intimate +data communication or control flow between those subprograms and other +parts of the work. -The Corresponding Source need not include anything that users can +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. -The Corresponding Source for a work in source code form is that same work. +The Corresponding Source for a work in source code form is that same +work. - 2. Basic Permissions. -All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your +2. Basic Permissions. +--------------------- + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. -You may make, run and propagate covered works that you do not convey, -without conditions so long as your license otherwise remains in force. -You may convey covered works to others for the sole purpose of having them -make modifications exclusively for you, or provide you with facilities for -running those works, provided that you comply with the terms of this -License in conveying all material for which you do not control copyright. -Those thus making or running the covered works for you must do so -exclusively on your behalf, under your direction and control, on terms -that prohibit them from making any copies of your copyrighted material -outside their relationship with you. +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. -Conveying under any other circumstances is permitted solely under the -conditions stated below. Sublicensing is not allowed; section 10 makes it -unnecessary. +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. -No covered work shall be deemed part of an effective technological measure -under any applicable law fulfilling obligations under article 11 of the -WIPO copyright treaty adopted on 20 December 1996, or similar laws +3. Protecting Users’ Legal Rights From Anti-Circumvention Law. +-------------------------------------------------------------- + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article 11 +of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. -When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to the -covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to the +covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work’s +users, your or third parties’ legal rights to forbid circumvention of technological measures. - 4. Conveying Verbatim Copies. -You may convey verbatim copies of the Program's source code as you receive -it, in any medium, provided that you conspicuously and appropriately -publish on each copy an appropriate copyright notice; keep intact all -notices stating that this License and any non-permissive terms added in -accord with section 7 apply to the code; keep intact all notices of the -absence of any warranty; and give all recipients a copy of this License -along with the Program. +4. Conveying Verbatim Copies. +----------------------------- -You may charge any price or no price for each copy that you convey, and +You may convey verbatim copies of the Program’s source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; keep +intact all notices stating that this License and any non-permissive terms +added in accord with section 7 apply to the code; keep intact all notices +of the absence of any warranty; and give all recipients a copy of this +License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. - 5. Conveying Modified Source Versions. -You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the terms of -section 4, provided that you also meet all of these conditions: +5. Conveying Modified Source Versions. +-------------------------------------- -a) The work must carry prominent notices stating that you modified it, and - giving a relevant date. +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the terms +of section 4, provided that you also meet all of these conditions: -b) The work must carry prominent notices stating that it is released under - this License and any conditions added under section 7. This - requirement modifies the requirement in section 4 to "keep intact all - notices". +a) The work must carry prominent notices stating that you modified it, + and giving a relevant date. -c) You must license the entire work, as a whole, under this License to - anyone who comes into possession of a copy. This License will - therefore apply, along with any applicable section 7 additional terms, - to the whole of the work, and all its parts, regardless of how they are - packaged. This License gives no permission to license the work in any - other way, but it does not invalidate such permission if you have +b) The work must carry prominent notices stating that it is released + under this License and any conditions added under section 7. This + requirement modifies the requirement in section 4 to “keep intact all + notices”. + +c) You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will + therefore apply, along with any applicable section 7 additional terms, + to the whole of the work, and all its parts, regardless of how they + are packaged. This License gives no permission to license the work in + any other way, but it does not invalidate such permission if you have separately received it. -d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your work +d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work need not make them do so. -A compilation of a covered work with other separate and independent works, -which are not by their nature extensions of the covered work, and which -are not combined with it such as to form a larger program, in or on a -volume of a storage or distribution medium, is called an "aggregate" if -the compilation and its resulting copyright are not used to limit the -access or legal rights of the compilation's users beyond what the -individual works permit. Inclusion of a covered work in an aggregate does -not cause this License to apply to the other parts of the aggregate. +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, and +which are not combined with it such as to form a larger program, in or on +a volume of a storage or distribution medium, is called an “aggregate” if +the compilation and its resulting copyright are not used to limit the +access or legal rights of the compilation’s users beyond what the +individual works permit. Inclusion of a covered work in an aggregate +does not cause this License to apply to the other parts of the aggregate. - 6. Conveying Non-Source Forms. -You may convey a covered work in object code form under the terms of -sections 4 and 5, provided that you also convey the machine-readable -Corresponding Source under the terms of this License, in one of these +6. Conveying Non-Source Forms. +------------------------------ + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these ways: -a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium customarily +a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium customarily used for software interchange. -b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a written - offer, valid for at least three years and valid for as long as you - offer spare parts or customer support for that product model, to give - anyone who possesses the object code either (1) a copy of the - Corresponding Source for all the software in the product that is - covered by this License, on a durable physical medium customarily used - for software interchange, for a price no more than your reasonable cost - of physically performing this conveying of source, or (2) access to - copy the Corresponding Source from a network server at no charge. +b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a written + offer, valid for at least three years and valid for as long as you + offer spare parts or customer support for that product model, to give + anyone who possesses the object code either (1) a copy of the + Corresponding Source for all the software in the product that is + covered by this License, on a durable physical medium customarily used + for software interchange, for a price no more than your reasonable + cost of physically performing this conveying of source, or (2) access + to copy the Corresponding Source from a network server at no charge. -c) Convey individual copies of the object code with a copy of the written - offer to provide the Corresponding Source. This alternative is allowed - only occasionally and noncommercially, and only if you received the - object code with such an offer, in accord with subsection 6b. +c) Convey individual copies of the object code with a copy of the written + offer to provide the Corresponding Source. This alternative is + allowed only occasionally and noncommercially, and only if you + received the object code with such an offer, in accord with subsection + 6b. -d) Convey the object code by offering access from a designated place - (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to copy - the object code is a network server, the Corresponding Source may be on - a different server (operated by you or a third party) that supports - equivalent copying facilities, provided you maintain clear directions - next to the object code saying where to find the Corresponding Source. - Regardless of what server hosts the Corresponding Source, you remain - obligated to ensure that it is available for as long as needed to +d) Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to copy + the object code is a network server, the Corresponding Source may be + on a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions + next to the object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you remain + obligated to ensure that it is available for as long as needed to satisfy these requirements. -e) Convey the object code using peer-to-peer transmission, provided you - inform other peers where the object code and Corresponding Source of - the work are being offered to the general public at no charge under +e) Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of + the work are being offered to the general public at no charge under subsection 6d. -A separable portion of the object code, whose source code is excluded from -the Corresponding Source as a System Library, need not be included in -conveying the object code work. +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be included +in conveying the object code work. -A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, or -household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a typical -or common use of that class of product, regardless of the status of the -particular user or of the way in which the particular user actually uses, -or expects or is expected to use, the product. A product is a consumer -product regardless of whether the product has substantial commercial, -industrial or non-consumer uses, unless such uses represent the only -significant mode of use of the product. +A “User Product” is either (1) a “consumer product”, which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, “normally used” refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. -"Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because +“Installation Information” for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because modification has been made. -If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as part -of a transaction in which the right of possession and use of the User -Product is transferred to the recipient in perpetuity or for a fixed term -(regardless of how the transaction is characterized), the Corresponding -Source conveyed under this section must be accompanied by the Installation -Information. But this requirement does not apply if neither you nor any -third party retains the ability to install modified object code on the -User Product (for example, the work has been installed in ROM). +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as part +of a transaction in which the right of possession and use of the User +Product is transferred to the recipient in perpetuity or for a fixed term +(regardless of how the transaction is characterized), the Corresponding +Source conveyed under this section must be accompanied by the +Installation Information. But this requirement does not apply if neither +you nor any third party retains the ability to install modified object +code on the User Product (for example, the work has been installed in +ROM). -The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and protocols for communication across the network. -Corresponding Source conveyed, and Installation Information provided, in -accord with this section must be in a format that is publicly documented -(and with an implementation available to the public in source code form), -and must require no special password or key for unpacking, reading or +Corresponding Source conveyed, and Installation Information provided, in +accord with this section must be in a format that is publicly documented +(and with an implementation available to the public in source code form), +and must require no special password or key for unpacking, reading or copying. - 7. Additional Terms. -"Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall be -treated as though they were included in this License, to the extent that -they are valid under applicable law. If additional permissions apply only -to part of the Program, that part may be used separately under those -permissions, but the entire Program remains governed by this License +7. Additional Terms. +-------------------- + +“Additional permissions” are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall be +treated as though they were included in this License, to the extent that +they are valid under applicable law. If additional permissions apply +only to part of the Program, that part may be used separately under those +permissions, but the entire Program remains governed by this License without regard to the additional permissions. -When you convey a copy of a covered work, you may at your option remove -any additional permissions from that copy, or from any part of it. -(Additional permissions may be written to require their own removal in -certain cases when you modify the work.) You may place additional -permissions on material, added by you to a covered work, for which you +When you convey a copy of a covered work, you may at your option remove +any additional permissions from that copy, or from any part of it. +(Additional permissions may be written to require their own removal in +certain cases when you modify the work.) You may place additional +permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. -Notwithstanding any other provision of this License, for material you add -to a covered work, you may (if authorized by the copyright holders of that -material) supplement the terms of this License with terms: +Notwithstanding any other provision of this License, for material you add +to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: -a) Disclaiming warranty or limiting liability differently from the terms +a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or -b) Requiring preservation of specified reasonable legal notices or author - attributions in that material or in the Appropriate Legal Notices +b) Requiring preservation of specified reasonable legal notices or author + attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or -c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in +c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in reasonable ways as different from the original version; or -d) Limiting the use for publicity purposes of names of licensors or +d) Limiting the use for publicity purposes of names of licensors or authors of the material; or -e) Declining to grant rights under trademark law for use of some trade +e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or -f) Requiring indemnification of licensors and authors of that material by - anyone who conveys the material (or modified versions of it) with - contractual assumptions of liability to the recipient, for any - liability that these contractual assumptions directly impose on those +f) Requiring indemnification of licensors and authors of that material by + anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any + liability that these contractual assumptions directly impose on those licensors and authors. -All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further restriction, -you may remove that term. If a license document contains a further -restriction but permits relicensing or conveying under this License, you -may add to a covered work material governed by the terms of that license -document, provided that the further restriction does not survive such +All other non-permissive additional terms are considered “further +restrictions” within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further restriction, +you may remove that term. If a license document contains a further +restriction but permits relicensing or conveying under this License, you +may add to a covered work material governed by the terms of that license +document, provided that the further restriction does not survive such relicensing or conveying. -If you add terms to a covered work in accord with this section, you must -place, in the relevant source files, a statement of the additional terms -that apply to those files, or a notice indicating where to find the +If you add terms to a covered work in accord with this section, you must +place, in the relevant source files, a statement of the additional terms +that apply to those files, or a notice indicating where to find the applicable terms. -Additional terms, permissive or non-permissive, may be stated in the form -of a separately written license, or stated as exceptions; the above +Additional terms, permissive or non-permissive, may be stated in the form +of a separately written license, or stated as exceptions; the above requirements apply either way. - 8. Termination. -You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or modify -it is void, and will automatically terminate your rights under this -License (including any patent licenses granted under the third paragraph -of section 11). +8. Termination. +--------------- -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, unless -and until the copyright holder explicitly and finally terminates your -license, and (b) permanently, if the copyright holder fails to notify you -of the violation by some reasonable means prior to 60 days after the -cessation. +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). -Moreover, your license from a particular copyright holder is reinstated -permanently if the copyright holder notifies you of the violation by some -reasonable means, this is the first time you have received notice of -violation of this License (for any work) from that copyright holder, and +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally terminates +your license, and (b) permanently, if the copyright holder fails to +notify you of the violation by some reasonable means prior to 60 days +after the cessation. + +Moreover, your license from a particular copyright holder is reinstated +permanently if the copyright holder notifies you of the violation by some +reasonable means, this is the first time you have received notice of +violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under this -License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same material under section 10. - 9. Acceptance Not Required for Having Copies. -You are not required to accept this License in order to receive or run a -copy of the Program. Ancillary propagation of a covered work occurring -solely as a consequence of using peer-to-peer transmission to receive a -copy likewise does not require acceptance. However, nothing other than -this License grants you permission to propagate or modify any covered -work. These actions infringe copyright if you do not accept this License. -Therefore, by modifying or propagating a covered work, you indicate your -acceptance of this License to do so. +9. Acceptance Not Required for Having Copies. +--------------------------------------------- - 10. Automatic Licensing of Downstream Recipients. +You are not required to accept this License in order to receive or run a +copy of the Program. Ancillary propagation of a covered work occurring +solely as a consequence of using peer-to-peer transmission to receive a +copy likewise does not require acceptance. However, nothing other than +this License grants you permission to propagate or modify any covered +work. These actions infringe copyright if you do not accept this +License. Therefore, by modifying or propagating a covered work, you +indicate your acceptance of this License to do so. -Each time you convey a covered work, the recipient automatically receives -a license from the original licensors, to run, modify and propagate that -work, subject to this License. You are not responsible for enforcing + +10. Automatic Licensing of Downstream Recipients. +------------------------------------------------- + +Each time you convey a covered work, the recipient automatically receives +a license from the original licensors, to run, modify and propagate that +work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. -An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered work -results from an entity transaction, each party to that transaction who -receives a copy of the work also receives whatever licenses to the work -the party's predecessor in interest had or could give under the previous -paragraph, plus a right to possession of the Corresponding Source of the -work from the predecessor in interest, if the predecessor has it or can +An “entity transaction” is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered work +results from an entity transaction, each party to that transaction who +receives a copy of the work also receives whatever licenses to the work +the party’s predecessor in interest had or could give under the previous +paragraph, plus a right to possession of the Corresponding Source of the +work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. -You may not impose any further restrictions on the exercise of the rights -granted or affirmed under this License. For example, you may not impose a -license fee, royalty, or other charge for exercise of rights granted under -this License, and you may not initiate litigation (including a cross-claim -or counterclaim in a lawsuit) alleging that any patent claim is infringed -by making, using, selling, offering for sale, or importing the Program or -any portion of it. +You may not impose any further restrictions on the exercise of the rights +granted or affirmed under this License. For example, you may not impose +a license fee, royalty, or other charge for exercise of rights granted +under this License, and you may not initiate litigation (including a +cross-claim or counterclaim in a lawsuit) alleging that any patent claim +is infringed by making, using, selling, offering for sale, or importing +the Program or any portion of it. - 11. Patents. -A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The work -thus licensed is called the contributor's "contributor version". +11. Patents. +------------ -A contributor's "essential patent claims" are all patent claims owned or -controlled by the contributor, whether already acquired or hereafter -acquired, that would be infringed by some manner, permitted by this -License, of making, using, or selling its contributor version, but do not -include claims that would be infringed only as a consequence of further -modification of the contributor version. For purposes of this definition, -"control" includes the right to grant patent sublicenses in a manner -consistent with the requirements of this License. +A “contributor” is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The work +thus licensed is called the contributor’s “contributor version”. -Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to make, -use, sell, offer for sale, import and otherwise run, modify and propagate +A contributor’s “essential patent claims” are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter +acquired, that would be infringed by some manner, permitted by this +License, of making, using, or selling its contributor version, but do not +include claims that would be infringed only as a consequence of further +modification of the contributor version. For purposes of this +definition, “control” includes the right to grant patent sublicenses in a +manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor’s essential patent claims, to make, +use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. -In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to sue -for patent infringement). To "grant" such a patent license to a party -means to make such an agreement or commitment not to enforce a patent -against the party. +In the following three paragraphs, a “patent license” is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To “grant” such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. -If you convey a covered work, knowingly relying on a patent license, and -the Corresponding Source of the work is not available for anyone to copy, -free of charge and under the terms of this License, through a publicly -available network server or other readily accessible means, then you must -either (1) cause the Corresponding Source to be so available, or (2) -arrange to deprive yourself of the benefit of the patent license for this -particular work, or (3) arrange, in a manner consistent with the -requirements of this License, to extend the patent license to downstream -recipients. "Knowingly relying" means you have actual knowledge that, but -for the patent license, your conveying the covered work in a country, or -your recipient's use of the covered work in a country, would infringe one -or more identifiable patents in that country that you have reason to +If you convey a covered work, knowingly relying on a patent license, and +the Corresponding Source of the work is not available for anyone to copy, +free of charge and under the terms of this License, through a publicly +available network server or other readily accessible means, then you must +either (1) cause the Corresponding Source to be so available, or +(2) arrange to deprive yourself of the benefit of the patent license for +this particular work, or (3) arrange, in a manner consistent with the +requirements of this License, to extend the patent license to downstream +recipients. “Knowingly relying” means you have actual knowledge that, +but for the patent license, your conveying the covered work in a country, +or your recipient’s use of the covered work in a country, would infringe +one or more identifiable patents in that country that you have reason to believe are valid. -If, pursuant to or in connection with a single transaction or arrangement, -you convey, or propagate by procuring conveyance of, a covered work, and -grant a patent license to some of the parties receiving the covered work -authorizing them to use, propagate, modify or convey a specific copy of -the covered work, then the patent license you grant is automatically -extended to all recipients of the covered work and works based on it. +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties receiving +the covered work authorizing them to use, propagate, modify or convey a +specific copy of the covered work, then the patent license you grant is +automatically extended to all recipients of the covered work and works +based on it. -A patent license is "discriminatory" if it does not include within the -scope of its coverage, prohibits the exercise of, or is conditioned on the -non-exercise of one or more of the rights that are specifically granted -under this License. You may not convey a covered work if you are a party -to an arrangement with a third party that is in the business of -distributing software, under which you make payment to the third party -based on the extent of your activity of conveying the work, and under -which the third party grants, to any of the parties who would receive the -covered work from you, a discriminatory patent license (a) in connection -with copies of the covered work conveyed by you (or copies made from those -copies), or (b) primarily for and in connection with specific products or -compilations that contain the covered work, unless you entered into that -arrangement, or that patent license was granted, prior to 28 March 2007. +A patent license is “discriminatory” if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you are +a party to an arrangement with a third party that is in the business of +distributing software, under which you make payment to the third party +based on the extent of your activity of conveying the work, and under +which the third party grants, to any of the parties who would receive the +covered work from you, a discriminatory patent license (a) in connection +with copies of the covered work conveyed by you (or copies made from +those copies), or (b) primarily for and in connection with specific +products or compilations that contain the covered work, unless you +entered into that arrangement, or that patent license was granted, prior +to 28 March 2007. -Nothing in this License shall be construed as excluding or limiting any -implied license or other defenses to infringement that may otherwise be +Nothing in this License shall be construed as excluding or limiting any +implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. - 12. No Surrender of Others' Freedom. -If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate -you to collect a royalty for further conveying from those to whom you -convey the Program, the only way you could satisfy both those terms and -this License would be to refrain entirely from conveying the Program. +12. No Surrender of Others’ Freedom. +------------------------------------ - 13. Use with the GNU Affero General Public License. +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not convey it at all. For example, if you agree to terms that +obligate you to collect a royalty for further conveying from those to +whom you convey the Program, the only way you could satisfy both those +terms and this License would be to refrain entirely from conveying the +Program. -Notwithstanding any other provision of this License, you have permission -to link or combine any covered work with a work licensed under version 3 -of the GNU Affero General Public License into a single combined work, and -to convey the resulting work. The terms of this License will continue to -apply to the part which is the covered work, but the special requirements -of the GNU Affero General Public License, section 13, concerning + +13. Use with the GNU Affero General Public License. +--------------------------------------------------- + +Notwithstanding any other provision of this License, you have permission +to link or combine any covered work with a work licensed under version 3 +of the GNU Affero General Public License into a single combined work, and +to convey the resulting work. The terms of this License will continue to +apply to the part which is the covered work, but the special requirements +of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. - 14. Revised Versions of this License. -The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to +14. Revised Versions of this License. +------------------------------------- + +The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies that a certain numbered version of the GNU General Public -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that numbered version or of -any later version published by the Free Software Foundation. If the -Program does not specify a version number of the GNU General Public -License, you may choose any version ever published by the Free Software +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public +License “or any later version” applies to it, you have the option of +following the terms and conditions either of that numbered version or of +any later version published by the Free Software Foundation. If the +Program does not specify a version number of the GNU General Public +License, you may choose any version ever published by the Free Software Foundation. -If the Program specifies that a proxy can decide which future versions of -the GNU General Public License can be used, that proxy's public statement -of acceptance of a version permanently authorizes you to choose that +If the Program specifies that a proxy can decide which future versions of +the GNU General Public License can be used, that proxy’s public statement +of acceptance of a version permanently authorizes you to choose that version for the Program. -Later license versions may give you additional or different permissions. -However, no additional obligations are imposed on any author or copyright +Later license versions may give you additional or different permissions. +However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. - 15. Disclaimer of Warranty. -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +15. Disclaimer of Warranty. +--------------------------- - 16. Limitation of Liability. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE +COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE -PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - 17. Interpretation of Sections 15 and 16. +16. Limitation of Liability. +---------------------------- -If the disclaimer of warranty and limitation of liability provided above -cannot be given local legal effect according to their terms, reviewing -courts shall apply local law that most closely approximates an absolute -waiver of all civil liability in connection with the Program, unless a -warranty or assumption of liability accompanies a copy of the Program in +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING +ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF +THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO +LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU +OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + +17. Interpretation of Sections 15 and 16. +----------------------------------------- + +If the disclaimer of warranty and limitation of liability provided above +cannot be given local legal effect according to their terms, reviewing +courts shall apply local law that most closely approximates an absolute +waiver of all civil liability in connection with the Program, unless a +warranty or assumption of liability accompanies a copy of the Program in return for a fee. - END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs +**END OF TERMS AND CONDITIONS** -If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these + +How to Apply These Terms to Your New Programs +============================================= + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. -To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively state the -exclusion of warranty; and each file should have at least the "copyright" -line and a pointer to where the full notice is found. +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively state +the exclusion of warranty; and each file should have at least the +“copyright” line and a pointer to where the full notice is found. - - Copyright (C) , +.. parsed-literal:: - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + *one line to give the program's name and a brief idea of what it does.* + Copyright (C) *year* *name of author* - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program does terminal interaction, make it output a short notice +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: - Copyright (C) , - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. +.. parsed-literal:: -The hypothetical commands "show w" and "show c" should show the -appropriate parts of the General Public License. Of course, your -program's commands might be different; for a GUI interface, you would use -an "about box". + *program* Copyright (C) *year* *name of author* + This program comes with ABSOLUTELY NO WARRANTY; for details type \`show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type \`show c' for details. -You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. +The hypothetical commands ``show w`` and ``show c`` should show the +appropriate parts of the General Public License. Of course, your +program’s commands might be different; for a GUI interface, you would use +an “about box”. -The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications -with the library. If this is what you want to do, use the GNU Lesser -General Public License instead of this License. But first, please read -. +You should also get your employer (if you work as a programmer) or +school, if any, to sign a “copyright disclaimer” for the program, if +necessary. For more information on this, and how to apply and follow the +GNU GPL, see https://www.gnu.org/licenses/. + +The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications +with the library. If this is what you want to do, use the GNU Lesser +General Public License instead of this License. But first, please read +https://www.gnu.org/licenses/why-not-lgpl.html. diff --git a/INSTALL b/INSTALL index 0a724cd..eda8710 100644 --- a/INSTALL +++ b/INSTALL @@ -1,121 +1,161 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Star Traders is written in the C99 programming language and uses Autoconf -and Automake to handle compilation and installation. Assuming you have -the needed tools, all you should need to do is run the following commands -from the source directory: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +Star Traders is written in the C99 programming language and uses Autoconf +and Automake to handle compilation and installation. Assuming you have +the needed tools, all you should need to do is run the following commands +from the source directory:: ./configure make make install -The first two commands may be run as an ordinary user; the last may need +The first two commands may be run as an ordinary user; the last may need to be done as the system administrator (root). +.. contents:: + + Prerequisites ============= -Star Traders requires the following components for successful compilation +Star Traders requires the following components for successful compilation and installation: -1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as - C99). Any recent version of the GNU Compiler Collection (GCC) is more - than adequate. +1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as + C99). Any recent version of the GNU Compiler Collection (GCC) or the + Clang LLVM Compiler is more than adequate. -2. An operating system ideally conforming to ISO/IEC 9945-1:2001 (POSIX) - or to the X/Open Single Unix Specification v3 or later. In short, any - modern Unix or Unix-like system like Linux almost certainly qualifies. - In actual fact, Star Traders uses the GNU Portability Library, so many - older systems may also work without modification. +2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX) + or to the Open Group Single UNIX Specification version 4 or later. + In short, any modern Unix or Unix-like system like Linux almost + certainly qualifies. -3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses - is preferred over system-native libraries, if present. Locales with - multibyte character sequences (such as UTF-8) require a wide-character - version of Curses, such as NcursesW, to work correctly. + In actual fact, Star Traders uses the GNU Portability Library, so + many older systems may also work without modification. -4. The GNU Gettext library, version 0.19.8 or later, to allow the game to - use languages other than English; this is also called Native Language - Support. If you do not have this library (and do not wish to install - it), you may pass "--disable-nls" to the configure script. +3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses + is preferred over system-native libraries, if present. Locales with + multibyte character sequences (such as UTF-8) require a + wide-character version of Curses, such as NcursesW, to work + correctly. -5. Development libraries and header files for all of the above. On many - systems, these files are part of XXX-dev or XXX-devel packages. +4. The GNU Gettext library, version 0.19.8 or later, to allow the game + to use languages other than English; this is also called Native + Language Support. If you do not have this library (and do not wish + to install it), you may pass ``--disable-nls`` to the configure + script. -6. The GNU Perfect Hash Function Generator, gperf. This utility program - may be required for parts of the GNU Portability Library. +5. The GNU ``libiconv`` library for supporting multiple character + encodings, if required by the GNU Gettext library. This is not + needed on systems with the GNU C Library (``glibc``) version 2.2 or + later, or on Mac OS X (now called macOS) 10.3 or newer. + +6. Development libraries and header files for all of the above. On many + systems, these files are part of ``XXX-dev`` or ``XXX-devel`` + packages. + +7. The GNU Perfect Hash Function Generator, ``gperf``. This utility + program may be required for parts of the GNU Portability Library. Installation ============ -The installation of Star Traders can be broken down into three main steps: -configuration, compilation and the installation proper. +The installation of Star Traders can be broken down into three main +steps: configuration, compilation and the installation proper. -The first step is configuring the package for your compiler and operating -system environment. As Star Traders uses Autoconf and Automake, all you -need to do in most cases is run "./configure" from the top-level directory -of the Star Traders source tree. The configure script understands all of -the usual Autoconf options; these are explained in detail in the Autoconf -manual: +The first step is configuring the package for your compiler and operating +system environment. As Star Traders uses Autoconf and Automake, all you +need to do in most cases is run ``./configure`` from the top-level +directory of the Star Traders source tree. The configure script +understands all of the usual Autoconf options; these are explained in +detail in the `Autoconf manual`__. - http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts +__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts -This version of the configure script understands the following additional +This version of the configure script understands the following additional command line options: - --disable-nls Do not use Native Language Support - --disable-assert Turn off all debugging assert() statements - --with-ncurses Force the use of Ncurses over the system's Curses - library - --with-ncursesw Force the use of the NcursesW library with wide- - character support - --without-ncursesw Don't use the NcursesW library with wide-character - support - --without-ncurses Don't use the Ncurses library: use the system's - normal Curses library + --disable-nls + Don’t use Native Language Support. Star Traders will only + show untranslated US English text and only accept US ASCII + keyboard input. + --with-libintl-prefix=DIR + Find the GNU Gettext library installed in the *DIR*\ `/lib` + and *DIR*\ `/include` directories. This option is needed if + your library is not installed in `/usr/lib` and + `/usr/include` (or, more precisely, if the C compiler cannot + find the library “``.so``” or “``.a``” archive file using the + standard “``-l``” command line parameter or the relevant + header files using standard :code:`#include` directives). + --with-libiconv-prefix=DIR + Find the GNU ``libiconv`` library installed in the *DIR*\ + `/lib` and *DIR*\ `/include` directories. This option is + needed if the GNU Gettext library requires ``libiconv`` on + your system, and that library is not installed in `/usr/lib` + and `/usr/include`. + --with-ncurses + Force the use of Ncurses over the system’s Curses library. + In other words, do not search for a native Curses library at + all. + --with-ncursesw + Force the use of the NcursesW library with wide-character + support. If NcursesW cannot be found, abort the + ``configure`` script. + --without-ncursesw + Don’t use the NcursesW library. This will prevent non-8-bit + character encodings like UTF-8 from working correctly and is + thus not recommended. + --without-ncurses + Don’t use the Ncurses library: use either NcursesW (unless + ``--without-ncursesw`` is also specified) or the system’s + normal Curses library. This option is not recommended. + --disable-assert + Turn off all debugging :code:`assert()` statements. -By default, configure uses "/usr/local" as the top-level (prefix) install -directory. You can change this by specifying "--prefix=DIR" to use DIR -instead. For example, you can use a directory in your own home directory -by specifying something like: +By default, ``configure`` uses `/usr/local` as the top-level (prefix) +install directory. You can change this by specifying ``--prefix=``\ +*DIR* to use *DIR* instead. For example, you can use a directory in your +own home directory by specifying something like:: ./configure --prefix=$HOME/opt/trader -You may also specify certain configuration and/or compilation variables on -the command line to override choices made by configure. For example, you -can specify the compiler flags to use by passing the CFLAGS variable: +You may also specify certain configuration and/or compilation variables +on the command line to override choices made by ``configure``. For +example, you can specify the compiler flags to use by passing the +``CFLAGS`` variable:: ./configure CFLAGS="-g -O2 -Wall" -The configure script has many other options. You may obtain a list of -these by running: +The ``configure`` script has many other options. You may obtain a list +of these by running:: ./configure --help -You can also run configure in a separate build-only directory tree. This -feature requires GNU Make and allows you to keep the source code tree from -being modified by the compilation process. To use this option, create a -separate build directory, then run configure. For example, if you placed -the Star Traders source code tree in $HOME/src/trader-7.12, you could run -something like: +You can also run ``configure`` in a separate build-only directory tree. +This feature requires GNU Make and allows you to keep the source code +tree from being modified by the compilation process. To use this option, +create a separate `build` directory, then run ``configure``. For +example, if you placed the Star Traders source code tree in +`$HOME/src/trader-7.13`, you could run something like:: - mkdir $HOME/build/trader-build-7.12 - cd $HOME/build/trader-build-7.12 - $HOME/src/trader-7.12/configure + mkdir $HOME/build/trader-build-7.13 + cd $HOME/build/trader-build-7.13 + $HOME/src/trader-7.13/configure -Once again, the Autoconf manual describes these options (and many others): +Once again, the `Autoconf manual`__ describes these options (and many +others). - http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts +__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts -Once the package has been configured, you can type "make" to compile it, -then "make install" to install it. You can specify the following command -lines, amongst others: +Once the package has been configured, you can type ``make`` to compile +it, then ``make install`` to install it. You can specify the following +command lines, amongst others:: make all make install @@ -123,128 +163,232 @@ lines, amongst others: make distclean make uninstall -The command "make all" does the same thing as running "make" by itself: -compile the package source code into an executable. +The command ``make all`` does the same thing as running ``make`` by +itself: compile the package source code into an executable. -Running "make install" copies the executable program and all associated -data and documentation files to those directories specified during -configuration. If any of these directories require system administrator -access privileges for writing, you will need to run "make install" as +Running ``make install`` copies the executable program and all associated +data and documentation files to those directories specified during +configuration. If any of these directories require system administrator +access privileges for writing, you will need to run ``make install`` as system administrator (root). -If you like, you can specify the DESTDIR variable to copy all installation -files to a temporary location before installing them later. For example, -if the prefix directory is "/usr/local", typing: +.. compound:: - make install DESTDIR=/tmp/trader-install + If you like, you can specify the ``DESTDIR`` variable to copy all + installation files to a temporary location before installing them + later. For example, if the prefix directory is `/usr/local`, typing:: -will copy the final program "trader" to /tmp/trader-install/usr/local/bin, -the manual page to /tmp/trader-install/usr/local/share/man/man6 and so on. + make install DESTDIR=/tmp/trader-install -The "make clean" command will remove most build-generated files, such as -object files generated by the compiler, from the source code or build -directory. Running "make distclean" will do the same, but will remove the -Makefiles generated by configure as well. In other words, if you run -"make distclean", you will need to rerun "configure" if you would like to -recompile Star Traders at a later date. + will copy the final program ``trader`` to + `/tmp/trader-install/usr/local/bin`, the manual page to + `/tmp/trader-install/usr/local/share/man/man6` and so on. -Finally, "make uninstall" will remove the executable program "trader" and -associated data and documentation files from their final installation -location. This assumes, of course, that you have NOT run "make distclean" -to remove the Makefiles that know the path to which those files were -installed! +The ``make clean`` command will remove most build-generated files, such +as object files generated by the compiler, from the source code or build +directory. Running ``make distclean`` will do the same, but will remove +the Makefiles generated by ``configure`` as well. In other words, if you +run ``make distclean``, you will need to rerun ``configure`` if you would +like to recompile Star Traders at a later date. + +Finally, ``make uninstall`` will remove the executable program ``trader`` +and associated data and documentation files from their final installation +location. This assumes, of course, that you have *not* run ``make +distclean`` to remove the Makefiles that know the path to which those +files were installed! + + +Tested Systems +============== + +The following operating systems and compilers have been successfully +tested with this version of Star Traders: + +===================== ====== ===== ======================== +Linux distribution Arch Glibc Compiler +===================== ====== ===== ======================== +Debian GNU/Linux Sid x86_64 2.29 GNU C Compiler 9.2.1 +Debian GNU/Linux Sid x86_64 2.29 Clang (LLVM) 8.0.1 +Debian GNU/Linux Sid i686 2.29 GNU C Compiler 9.2.1 +Debian GNU/Linux Sid i686 2.29 Clang (LLVM) 8.0.1 +Debian GNU/Linux 10.1 x86_64 2.28 GNU C Compiler 8.3.0 +Debian GNU/Linux 10.1 x86_64 2.28 Clang (LLVM) 7.0.1 +Ubuntu 19.10 x86_64 2.30 GNU C Compiler 9.2.1 +Ubuntu 19.10 x86_64 2.30 Clang (LLVM) 9.0.0 +Ubuntu 19.10 x86_64 2.30 Portland PGI C/C++ 19.10 +Ubuntu 18.04.3 LTS x86_64 2.27 GNU C Compiler 7.4.0 +Ubuntu 18.04.3 LTS x86_64 2.27 Clang (LLVM) 6.0.0 +Fedora 31 x86_64 2.30 GNU C Compiler 9.2.1 +CentOS 8.0 x86_64 2.28 GNU C Compiler 8.2.1 +CentOS 7.7 x86_64 2.17 GNU C Compiler 4.8.5 +CentOS 6.10 x86_64 2.12 GNU C Compiler 4.4.7 +CentOS 6.10 x86_64 2.12 Intel C/C++ 19.0.3.199 +OpenSUSE Leap 15.1 x86_64 2.26 GNU C Compiler 7.4.1 +===================== ====== ===== ======================== + +======================= ====== ============================ ============ +Operating system Arch Compiler Notes +======================= ====== ============================ ============ +FreeBSD 12.1 x86_64 Clang (LLVM) 8.0.1 [#freebsd1]_ +NetBSD 8.1 x86_64 GNU C Compiler 5.5.0 [#netbsd1]_ +macOS 10.14 x86_64 Apple Clang (LLVM) 11.0.0 [#macos1]_ +macOS 10.14 x86_64 Apple Clang (LLVM) 11.0.0 [#macos2]_ +Solaris 11.4 (x86_64) x86_64 GNU C Compiler 7.3.0 [#solaris1]_ +Solaris 11.4 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris2]_ +Solaris 11.4 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_ +Cygwin 3.0.7 (Win7 SP1) i686 GNU C Compiler 7.4.0 +======================= ====== ============================ ============ + +Notes: + +.. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``, + ``gettext-tools`` and ``libiconv`` binary packages installed with + ``pkg``\(1), using:: + + ./configure --with-libiconv-prefix=/usr/local \ + --with-libintl-prefix=/usr/local + +.. [#netbsd1] NetBSD with the ``gettext``, ``libiconv`` and ``ncursesw`` + packages installed with ``pkg_add``\(1), using:: + + ./configure --with-libiconv-prefix=/usr/pkg \ + --with-libintl-prefix=/usr/pkg \ + --with-ncursesw --with-ncurses \ + CURSES_CFLAGS=-I/usr/pkg/include \ + LDFLAGS=-L/usr/pkg/lib + +.. [#macos1] macOS with Xcode command line tools, with the ``gettext`` + package installed with Homebrew, using:: + + ./configure --with-libintl-prefix=/usr/local/opt/gettext + +.. [#macos2] macOS with Xcode command line tools, with the ``gettext``, + ``ncurses`` and ``pkg-config`` packages installed with Homebrew, + using:: + + ./configure --with-libintl-prefix=/usr/local/opt/gettext \ + PKG_CONFIG_PATH=/usr/local/opt/ncurses/lib/pkgconfig + +.. [#solaris1] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses`` + +.. [#solaris2] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses + CC='/opt/developerstudio12.6/bin/cc'`` + +.. [#solaris3] Using ``./configure CURSES_CFLAGS=-I/usr/include/ncurses + CC='/opt/developerstudio12.6/bin/cc -m64'`` + +The following systems are known *not* to work at the current time; this +list is almost certainly not exhaustive: + +================ ====== ==================== ============ +Operating system Arch Compiler Notes +================ ====== ==================== ============ +OpenBSD 6.6 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_ +OpenBSD 6.6 x86_64 Clang (LLVM) 8.0.1 [#openbsd1]_ +================ ====== ==================== ============ + +Notes: + +.. [#openbsd1] The OpenBSD C library does not include + :code:`` nor its associated functions, particularly + :code:`strfmon()`. Git Repository ============== -You can always download the latest version of Star Traders directly from -the Git repository on the ZAP Group server: +You can always download the latest version of Star Traders directly from +the Git repository on the ZAP Group server:: git clone git://git.zap.org.au/data/git/trader.git -Released versions of Star Traders include all scripts and files needed for -installation. If you are cloning the source code from the Git repository, -however, you will need to update these files yourself. You will need the -following additional tools installed on your system to do so: +Released versions of Star Traders include all scripts and files needed +for installation. If you are cloning the source code from the Git +repository, however, you will need to update these files yourself. You +will need the following additional tools installed on your system to do +so: -1. Autoconf v2.69 or later (http://www.gnu.org/software/autoconf/) -2. Automake v1.15 or later (http://www.gnu.org/software/automake/) -3. GNU Portability Library (http://www.gnu.org/software/gnulib/) +1. `Autoconf`__ v2.69 or later +2. `Automake`__ v1.15 or later +3. `pkg-config`__ v0.9.0 or later +4. `GNU Portability Library`__ -The GNU Portability Library may be installed by retrieving the latest -Gnulib source code from the Git repository: +__ https://www.gnu.org/software/autoconf/ +__ https://www.gnu.org/software/automake/ +__ https://pkg-config.freedesktop.org/ +__ https://www.gnu.org/software/gnulib/ + +The GNU Portability Library may be installed by retrieving the latest +Gnulib source code from the Git repository:: git clone git://git.savannah.gnu.org/gnulib.git -Once you have these tools, change to the Star Traders source code tree and -type: +Once you have these tools, change to the Star Traders source code tree +and type:: PATH=${PATH}:/path/to/gnulib-tool ./build-aux/bootstrap -where "/path/to/gnulib-tool" is, of course, the directory containing the -Gnulib "gnulib-tool" script. You should be ready to run "./configure && -make && make install" now. +where ``/path/to/gnulib-tool`` is, of course, the directory containing +the Gnulib ``gnulib-tool`` script. You should be ready to run +``./configure && make && make install`` now. For Translators =============== -Thank you for even considering to translate Star Traders into your native -language! You may use either a released version of Star Traders, or an -unreleased one, as discussed in the Git Repository section above. In +Thank you for even considering to translate Star Traders into your native +language! You may use either a released version of Star Traders, or an +unreleased one, as discussed in the Git Repository section above. In either case, you may find the following workflow useful. -First, run "./build-aux/bootstrap" if needed (only for unreleased versions -of Star Traders). +First, run ``./build-aux/bootstrap`` if needed (only for unreleased +versions of Star Traders). -Next, configure and install Star Traders into your home directory: +Next, configure and install Star Traders into your home directory:: ./configure --prefix=$HOME/opt/trader make make install -If you are adding a new translation, add its GNU Gettext language code to -the file po/LINGUAS, then create the template file for that language ("zz" -is used here): +If you are adding a new translation, add its GNU Gettext language code to +the file `po/LINGUAS`, then create the template file for that language +(“``zz``” is used here):: (cd po; msginit --locale=zz --width=132) -Now, modify the PO file for your language using your favourite editor or -translation tool. Please note that the generated PO file has extensive -documentation in its translator comments. If anything is unclear, please -feel free to ask the author and maintainer; contact details are available -in the README file. +Now, modify the PO file for your language using your favourite editor or +translation tool. Please note that the generated PO file has extensive +documentation in its translator comments. If anything is unclear, please +feel free to ask the author and maintainer; contact details are available +in the `README` file. -To test your PO file, compile and run Star Traders (replace "zz" with your -language code, of course): +To test your PO file, compile and run Star Traders (replace “``zz``” with +your language code, of course):: make && make -C po zz.gmo && make install LANGUAGE=zz $HOME/opt/trader/bin/trader -The "make -C po zz.gmo" forces the rebuilding of the GMO output file; the -"LANGUAGE=zz" parameter sets the language of the messages to use. +The ``make -C po zz.gmo`` forces the rebuilding of the GMO output file; +the ``LANGUAGE=zz`` parameter sets the language of the messages to use. -This process of editing and testing the PO file can be done iteratively, -of course: make a change, recompile, run the program to see the changes, +This process of editing and testing the PO file can be done iteratively, +of course: make a change, recompile, run the program to see the changes, repeat as needed. Once you have finished your translation, please submit the PO file to the -Translation Project. The relevant web page for Star Traders is: +Translation Project (TP). See the `TP Star Traders`__ web page or read +their `Translators and the TP`__ page for additional information. - http://translationproject.org/domain/trader.html +__ https://translationproject.org/domain/trader.html +__ https://translationproject.org/html/translators.html -More information for translators is available at: - - http://translationproject.org/html/translators.html - -To clean up your install directory, simply run: +To clean up your install directory, simply run:: rm -fr $HOME/opt/trader -By the way, as mentioned in the translator comments, formatting the help -text is probably the most complicated and tedious part of translating Star -Traders. The author and maintainer of this game is more than happy to -help you with this task: if you are able to provide a translation, even if -it is not formatted correctly, the maintainer will perform the necessary -adjustments for word-wrapping and justification. +By the way, as mentioned in the translator comments, formatting the help +text is probably the most complicated and tedious part of translating +Star Traders. The author and maintainer of this game is more than happy +to help you with this task: if you are able to provide a translation, +even if it is not formatted correctly, the maintainer will perform the +necessary adjustments for word-wrapping and justification. diff --git a/Makefile.am b/Makefile.am index b00291c..1ef870d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -24,7 +24,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. # Subdirectories to recurse into @@ -33,4 +33,6 @@ SUBDIRS = lib src po data doc m4 # Additional files to distribute EXTRA_DIST = \ build-aux/bootstrap \ - build-aux/msgfmt-desktop + build-aux/msgfmt-desktop \ + lib/obsolete-strings.c \ + lib/xopen-source.h diff --git a/Makefile.in b/Makefile.in index 743cf79..9814f1b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,12 +17,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: b00291c0fcd9d6b5823eea1ae09772f653b1928c $ +# $Id: 1ef870decc2757ddbeeb382f058d1551fc8402b3 $ # # This file, Makefile.am, contains the top-level Makefile for Star # Traders. It needs to be processed by automake to produce the @@ -40,7 +40,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -100,6 +100,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -118,19 +119,19 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -139,25 +140,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ @@ -202,7 +205,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -233,7 +236,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/missing COPYING INSTALL NEWS README \ build-aux/README build-aux/compile build-aux/config.guess \ - build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ + build-aux/config.rpath build-aux/config.sub \ build-aux/install-sh build-aux/missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) @@ -277,7 +280,6 @@ distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -311,9 +313,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -321,6 +323,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -374,6 +377,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -389,6 +393,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -482,6 +487,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -493,6 +499,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -570,6 +577,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -600,6 +608,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -619,6 +628,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -631,10 +641,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -651,6 +663,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -663,7 +676,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -688,6 +703,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -697,10 +713,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -717,7 +735,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -785,8 +802,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -797,10 +816,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -808,6 +830,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -824,6 +847,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -854,6 +878,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -864,6 +889,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -871,6 +897,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -888,11 +915,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -920,6 +949,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -931,6 +961,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -943,6 +974,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -955,6 +987,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -963,6 +996,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -1059,7 +1093,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -1085,7 +1118,9 @@ SUBDIRS = lib src po data doc m4 # Additional files to distribute EXTRA_DIST = \ build-aux/bootstrap \ - build-aux/msgfmt-desktop + build-aux/msgfmt-desktop \ + lib/obsolete-strings.c \ + lib/xopen-source.h all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -1112,8 +1147,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1246,7 +1281,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ diff --git a/NEWS b/NEWS index 068f012..0280ec9 100644 --- a/NEWS +++ b/NEWS @@ -1,18 +1,49 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Star Traders is a simple game of interstellar trading, where the objective -is to create companies, buy and sell shares, borrow and repay money, in -order to become the wealthiest player (the winner). +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -The following history is presented in reverse chronological order. If you -would like to see a list of detailed changes to this project, you should -browse the Git repository on The ZAP Group web server at the following -location: http://www.zap.org.au/gitweb/trader.git +Star Traders is a simple game of interstellar trading, where the +objective is to create companies, buy and sell shares, borrow and repay +money, in order to become the wealthiest player (the winner). + +The following history is presented in reverse chronological order. If +you would like to see a list of detailed changes to this project, you +should browse the `Star Traders Git repository`__ on `The ZAP Group web +server`__. + +__ https://www.zap.org.au/git-browser/trader.git +__ https://www.zap.org.au/ + + +.. contents:: + + +Version 7.13 (13th November, 2019) +---------------------------------- + +Converted all text files to reStructuredText (ReST) format. This format +is still quite readable as raw text, and is much more capable than the +myriad all-slightly-incompatible variants of Markdown. + +Modified the source code to work more reliably on non-GNU C Library +(``glibc``) platforms, particularly FreeBSD, Solaris and Cygwin, when +using the standard POSIX locale. Extensively tested the build procedure +on multiple operating systems and compilers, and submitted code upstream +to the Autoconf Archive project to make this work more robustly. Listed +tested operating system and compiler combinations in the `INSTALL` file. + +Updated the Esperanto translation, with thanks to Felipe Castro. + +Updated one string in the game for consistency with other labels; updated +all PO translations to suit. Also added strings from obsolete versions +of the GNU C Library so that Star Traders can provide translations for +them. + +Updated to the latest snapshot of the Gnulib GNU Portability Library. In +addition, updated the list of prerequisites in the `INSTALL` file and +listed some more command line options for the ``configure`` script. Version 7.12 (24th August, 2017) @@ -24,40 +55,44 @@ Updated the Serbian translation, with thanks to Мирослав Николић. Version 7.11 (18th June, 2017) ------------------------------ -Bug fix: some architectures (such as ARM, PowerPC and S390) treat "char" -as "unsigned char", and this caused b64decode() to fail while loading a -saved game. Changed the relevant type from "char" to "int" to fix this. +Bug fix: some architectures (such as ARM, PowerPC and S390) treat +:code:`char` as :code:`unsigned char`, and this caused +:code:`b64decode()` to fail while loading a saved game. Changed the +relevant type from :code:`char` to :code:`int` to fix this. Version 7.10 (2nd June, 2017) ----------------------------- -Added a data directory that contains a desktop file and appropriate icons. -Adjusted the game constants for more dynamic play: allow the share prices -and returns to change a bit more frequently and more rapidly. Tweaked the -colours in the example monochrome retro-computing command lines, including -adding an amber monitor version. +Added a `data` directory that contains a desktop file and appropriate +icons. Adjusted the game constants for more dynamic play: allow the +share prices and returns to change a bit more frequently and more +rapidly. Tweaked the colours in the example monochrome retro-computing +command lines, including adding an amber monitor version. -Added a Serbian translation, with thanks to Мирослав Николић. Updated the -Danish, French, Swedish, Hungarian, Norwegian Bokmål and German transla- -tions, in that order, with thanks to Joe Hansen, Frédéric Marchal, Anders -Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas respectively. +Added a Serbian translation, with thanks to Мирослав Николић. Updated +the Danish, French, Swedish, Hungarian, Norwegian Bokmål and German +translations, in that order, with thanks to Joe Hansen, Frédéric Marchal, +Anders Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas +respectively. -Updated translatable strings to overcome a limitation of msgfmt(1): if a -string starts or ends with a new-line character, its translation must do -so as well. This has an impact on labels in particular. Also changed the -help text string "Page N of M" to allow translations of the form "Of M -pages, this is page N", and all quoted strings using the obsolete GNU form -`like this' to 'this'. In addition, newer versions of lib/getopt.c have -different strings. All translations have been updated as a result. +Updated translatable strings to overcome a limitation of ``msgfmt``\(1): +if a string starts or ends with a new-line character, its translation +must do so as well. This has an impact on labels in particular. Also +changed the help text string “Page *N* of *M*” to allow translations of +the form “Of *M* pages, this is page *N*”, and all quoted strings using +the obsolete GNU form ```like this'`` to ``'this'``. In addition, newer +versions of `lib/getopt.c` have different strings. All translations have +been updated as a result. -Removed the obsolete Gnulib gettext module and updated to the latest Git -snapshot of Gnulib. Updated the dependency version numbers for Autoconf, -Automake and Gettext. Also updated all macros from the Autoconf Archive. +Removed the obsolete Gnulib ``gettext`` module and updated to the latest +Git snapshot of Gnulib. Updated the dependency version numbers for +Autoconf, Automake and Gettext. Also updated all macros from the +Autoconf Archive. -Migrated the source code repository from Subversion to Git. Updated the -documentation to suit, and also listed specific required version numbers -for the Autoconf and Automake tools in the INSTALL file. +Migrated the source code repository from Subversion to Git. Updated the +documentation to suit, and also listed specific required version numbers +for the Autoconf and Automake tools in the `INSTALL` file. Version 7.9 (5th January, 2016) @@ -69,169 +104,171 @@ Updated the Danish translation, with thanks to Joe Hansen. Version 7.8 (10th September, 2015) ---------------------------------- -Changed the name of the seventh company from "Gemeni Inc" to "Gemini Inc": -a spelling mistake that has been present since 1990! Special thanks to -Anders Jonsson for pointing this out. +Changed the name of the seventh company from “Gemeni Inc” to “Gemini +Inc”: a spelling mistake that has been present since 1990! Special +thanks to Anders Jonsson for pointing this out. -Added the Swedish translation, with thanks to Anders Jonsson. Minor code -changes were made to accommodate this language. Incorporated changes made -by the translators for German, French and Norwegian Bokmål, in that order, -with thanks to Philipp Thomas, Frédéric Marchal and Johnny A. Solbu. Also -updated all references to GNU Gettext to version 0.19.5. +Added the Swedish translation, with thanks to Anders Jonsson. Minor code +changes were made to accommodate this language. Incorporated changes +made by the translators for German, French and Norwegian Bokmål, in that +order, with thanks to Philipp Thomas, Frédéric Marchal and +Johnny A. Solbu. Also updated all references to GNU Gettext to version +0.19.5. Version 7.7 (18th August, 2015) ------------------------------- -Added the Hungarian translation, with thanks to Balázs Úr. Minor code -changes were made to accommodate this language. Also added documentation -in the file INSTALL to translate Star Traders into another language. +Added the Hungarian translation, with thanks to Balázs Úr. Minor code +changes were made to accommodate this language. Also added documentation +in the file `INSTALL` to translate Star Traders into another language. Version 7.6 (13th August, 2014) ------------------------------- -A minor release to fix compilation bugs under Cygwin: the libiconv library -must be listed AFTER the GNU Portability Library on that platform. +A minor release to fix compilation bugs under Cygwin: the ``libiconv`` +library must be listed *after* the GNU Portability Library on that +platform. -In addition, the minimum and maximum share return values were changed from --10% to -15% and 20% to 25% respectively. This gives more incentive to -borrow money from the Interstellar Trading Bank, whose interest rate can -reach a maximum of 20%. +In addition, the minimum and maximum share return values were changed +from -10% to -15% and 20% to 25% respectively. This gives more incentive +to borrow money from the Interstellar Trading Bank, whose interest rate +can reach a maximum of 20%. Version 7.5 (24th May, 2014) ---------------------------- -Rewrote the file input and output routines so that saved games are now -stored in a much more reliable (scrambled) ASCII format. However, saved -games from older versions will no longer load: the workaround is to start -the older version of Star Traders with the "--dont-encrypt" command line -option, load the relevant game and save it again straight away, change the -second line in the game file from "File API 7.2" to "File API 7.5", then -run the new version of Star Traders. +Rewrote the file input and output routines so that saved games are now +stored in a much more reliable (scrambled) ASCII format. However, saved +games from older versions will no longer load: the workaround is to start +the older version of Star Traders with the ``--dont-encrypt`` command +line option, load the relevant game and save it again straight away, +change the second line in the game file from “``File API 7.2``” to +“``File API 7.5``”, then run the new version of Star Traders. -Added translations for Norwegian Bokmål, Danish and Esperanto (in that -order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro. -Updated auxiliary files to the latest versions available from the Gnulib +Added translations for Norwegian Bokmål, Danish and Esperanto (in that +order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro. +Updated auxiliary files to the latest versions available from the Gnulib GNU Portability Library and the GNU Autoconf project. Version 7.4 (9th May, 2012) --------------------------- -For the first time since the CP/M-80 version of Star Traders, the game -algorithms have been carefully reviewed and revised. In particular, -companies may now have negative returns, making players lose money on such -shares. This may encourage players to use the "Sell shares" option at -appropriate times... In addition, changes in share prices, returns and -bank interest rates have been made much "smoother", less prone to wild -variations. These new algorithms were first modelled using Gnuplot and +For the first time since the CP/M-80 version of Star Traders, the game +algorithms have been carefully reviewed and revised. In particular, +companies may now have negative returns, making players lose money on +such shares. This may encourage players to use the “Sell shares” option +at appropriate times… In addition, changes in share prices, returns and +bank interest rates have been made much “smoother”, less prone to wild +variations. These new algorithms were first modelled using Gnuplot and Perl before being implemented in C. -The "configure" script now prints a prominent warning if a wide-character -version of Curses, such as NcursesW, is not available when compiling the -game. It is a warning and not an error as single-byte locales (such as -US-ASCII and ISO8859-1) do not require NcursesW, even if the compilation -environment itself is a multibyte one (such as UTF-8). +The ``configure`` script now prints a prominent warning if a +wide-character version of Curses, such as NcursesW, is not available when +compiling the game. It is a warning and not an error as single-byte +locales (such as US-ASCII and ISO8859-1) do not require NcursesW, even if +the compilation environment itself is a multibyte one (such as UTF-8). -The Russian translation has been updated, with thanks to Vladimir Tsarkov -and Pavel Maryanov. Translations for French, German, Finnish and Croatian -have been added (in that order), with thanks to Frédéric Marchal, Philipp -Thomas, Jorma Karvonen and Tomislav Krznar. Special thanks also to the -Translation Project, which brings free (open-source) software developers -and translators together. +The Russian translation has been updated, with thanks to Vladimir Tsarkov +and Pavel Maryanov. Translations for French, German, Finnish and +Croatian have been added (in that order), with thanks to Frédéric +Marchal, Philipp Thomas, Jorma Karvonen and Tomislav Krznar. Special +thanks also to the Translation Project, which brings free (open-source) +software developers and translators together. Version 7.3 (16th March, 2012) ------------------------------ -Star Traders has been translated into Russian. In addition, a number of -bugs with internationalisation have been fixed. The "default value" key -(originally "=" or ";" as the first key-press in any input field) has been -incorporated into the language translation files. +Star Traders has been translated into Russian. In addition, a number of +bugs with internationalisation have been fixed. The “default value” key +(originally “``=``” or “``;``” as the first key-press in any input field) +has been incorporated into the language translation files. Version 7.2 (29th August, 2011) ------------------------------- -Star Traders has been internationalised! As part of this update, all -input and output routines have been rewritten to handle multibyte strings. -English (Australian, British, Canadian and US) translations have been -included. Translations for other languages (and corrections to existing -languages) are more than welcome! +Star Traders has been internationalised! As part of this update, all +input and output routines have been rewritten to handle multibyte +strings. English (Australian, British, Canadian and US) translations +have been included. Translations for other languages (and corrections to +existing languages) are more than welcome! -Game files are now stored in UTF-8 format (once decrypted!) and can be -loaded under any locale with automatic character set translation. This -does mean, however, that game files from versions 7.0 and 7.1 of Star +Game files are now stored in UTF-8 format (once decrypted!) and can be +loaded under any locale with automatic character set translation. This +does mean, however, that game files from versions 7.0 and 7.1 of Star Traders will not load under this release. -The program now better handles terminal resizing events (for versions of -Curses supporting such events). It also tries to restore the terminal +The program now better handles terminal resizing events (for versions of +Curses supporting such events). It also tries to restore the terminal environment correctly when receiving a terminating signal. Version 7.1 (29th July, 2011) ----------------------------- -A minor updated release to fix configuration problems on some platforms. -In particular, some systems could not find the Curses libraries or header -files, so the Autoconf macro that performed the search was rewritten and +A minor updated release to fix configuration problems on some platforms. +In particular, some systems could not find the Curses libraries or header +files, so the Autoconf macro that performed the search was rewritten and extended. Version 7.0 (25th July, 2011) ----------------------------- -Released the first version of Star Traders for Unix-like operating systems -such as Linux. It requires a text console or window of at least 80x24 in -size. The code is written in the C99 programming language as a learning -exercise for a number of software tools and libraries; the algorithms in -the original Pascal and Visual Basic versions are reused for the game -logic. +Released the first version of Star Traders for Unix-like operating +systems such as Linux. It requires a text console or window of at least +80×24 in size. The code is written in the C99 programming language as a +learning exercise for a number of software tools and libraries; the +algorithms in the original Pascal and Visual Basic versions are reused +for the game logic. -Note that versions 7.0 and 7.1 of Star Traders did NOT handle locales with -multibyte character sequences (such as UTF-8) correctly. Each byte in a -such a sequence was treated as a separate character. Eight-bit locales -(such as US-ASCII, ISO8859-1, etc.) worked correctly. +Note that versions 7.0 and 7.1 of Star Traders did *not* handle locales +with multibyte character sequences (such as UTF-8) correctly. Each byte +in a such a sequence was treated as a separate character. Eight-bit +locales (such as US-ASCII, ISO8859-1, etc.) worked correctly. Early history ------------- -The original (and very primitive) Star Traders game was written by S. J. -Singer in 1984 using Altair Basic. This was modified for Microsoft Basic -(MBASIC) running under the CP/M-80 operating system by John Zaitseff and +The original (and very primitive) Star Traders game was written by S. J. +Singer in 1984 using Altair Basic. This was modified for Microsoft Basic +(MBASIC) running under the CP/M-80 operating system by John Zaitseff and released on 7th March, 1988. -Star Traders was then completely rewritten in 1990 for the Australian- -designed 8-bit MicroBee computer running CP/M-80 on a Zilog Z80 processor, -using Turbo Pascal 3.01a. Essentially, only the name of the game and some -of the ideas were retained in this version. Version 4.1 of Star Traders -was released on 1st August, 1991. +Star Traders was then completely rewritten in 1990 for the +Australian-designed 8-bit MicroBee computer running CP/M-80 on a Zilog +Z80 processor, using Turbo Pascal 3.01a. Essentially, only the name of +the game and some of the ideas were retained in this version. Version +4.1 of Star Traders was released on 1st August, 1991. -In 1992, it was recompiled for the NEC Advanced Personal Computer (with -8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo -Pascal 2.0. This version had colour added to it in the form of ANSI +In 1992, it was recompiled for the NEC Advanced Personal Computer (with +8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo +Pascal 2.0. This version had colour added to it in the form of ANSI escape sequences; version 4.4 was released on 2nd August, 1993. -The next version came in 1993, when the program was recompiled to run on -IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 was -used for this. The ANSI escape sequences were slightly different under -MS-DOS than under the NEC, in that the NEC supported a number of extra -character attributes. In other words, the MS-DOS version looked worse -than the one running under CP/M-86! +The next version came in 1993, when the program was recompiled to run on +IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 +was used for this. The ANSI escape sequences were slightly different +under MS-DOS than under the NEC, in that the NEC supported a number of +extra character attributes. In other words, the MS-DOS version looked +worse than the one running under CP/M-86! -Star Traders was recompiled again in 1994 for IBM-compatible machines with -VGA/EGA/CGA video graphics adapters. The output routines were recoded to -use a "windowed" look. Borland Pascal 7.0 was used for this purpose, -along with a number of text window manipulation modules. Version 5.4 was -released on 1st June, 1994. +Star Traders was recompiled again in 1994 for IBM-compatible machines +with VGA/EGA/CGA video graphics adapters. The output routines were +recoded to use a “windowed” look. Borland Pascal 7.0 was used for this +purpose, along with a number of text window manipulation modules. +Version 5.4 was released on 1st June, 1994. -In 1995, Star Traders was completely rewritten for the 16-bit Microsoft -Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used -for this purpose. Although completely rewritten, the original algorithms -were reused from previous versions. Version 6.0 of the game was released +In 1995, Star Traders was completely rewritten for the 16-bit Microsoft +Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used +for this purpose. Although completely rewritten, the original algorithms +were reused from previous versions. Version 6.0 of the game was released on 15th September, 1995. -Star Traders was then to languish until almost 16 years later... +Star Traders was then to languish until almost 16 years later… diff --git a/README b/README index 2174457..de9e81e 100644 --- a/README +++ b/README @@ -1,80 +1,79 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Welcome to Star Traders! This is a simple game of interstellar trading, -where the objective is to create companies, buy and sell shares, borrow +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +Welcome to Star Traders! This is a simple game of interstellar trading, +where the objective is to create companies, buy and sell shares, borrow and repay money, in order to become the wealthiest player (the winner). Installation ============ -Full instructions for installing Star Traders are contained in the file -INSTALL. Please note that that file does NOT contain generic GNU Autoconf -instructions! For the impatient, the short version is: +Full instructions for installing Star Traders are contained in the file +`INSTALL`. Please note that that file does *not* contain generic GNU +Autoconf instructions! For the impatient, the short version is:: ./configure make make install -The final command needs to be run as the system administrator (root), of +The final command needs to be run as the system administrator (root), of course. How to Play =========== -Star Traders comes with quite extensive in-built instructions on how to -play the game. Start by running "trader" from the command line. You will -be prompted for the number of players; from one to eight people can play -(although, in this version, they will all have to share the one keyboard -and screen!). After entering the names of the players, you will have the -opportunity to read instructions on how to play the game. Do so---and -good luck in the game! +Star Traders comes with quite extensive in-built instructions on how to +play the game. Start by running ``trader`` from the command line. You +will be prompted for the number of players; from one to eight people can +play (although, in this version, they will all have to share the one +keyboard and screen!). After entering the names of the players, you will +have the opportunity to read instructions on how to play the game. Do +so—and good luck in the game! -The manual page for Star Traders contains more information on command line -options, as well as some suggestions for running a retro-computing green- -screen nostalgia-tour version of the game... Try running the following, -for example (all on one line): +The manual page for Star Traders contains more information on command +line options, as well as some suggestions for running a retro-computing +green-screen nostalgia-tour version of the game… Try running the +following, for example (all on one line):: xterm -g 80x24 -fa Mono -fs 18 -bg '#181818' -fg '#2CAB00' -bc +sb \ +bdc +fbx -xrm 'XTerm*colorBD: #41FF00' -e trader --no-colour & -To read the manual page, type "man trader" from the command line. +To read the manual page, type ``man trader`` from the command line. Feedback ======== -Your comments, suggestions, corrections and enhancements are always warmly -welcomed! Please send these to: +Your comments, suggestions, corrections and enhancements are always +warmly welcomed! Please send these to: - Postal: John Zaitseff, - The ZAP Group, - Unit 6, 116 Woodburn Road, - Berala, NSW, 2141, - Australia - - E-mail: J.Zaitseff@zap.org.au - Web: http://www.zap.org.au/software/trader/ - FTP: ftp://ftp.zap.org.au/pub/trader/ + :Postal: | John Zaitseff, + | The ZAP Group, + | Unit 6, 116 Woodburn Road, + | Berala, NSW, 2141, + | Australia + :Email: | J.Zaitseff@zap.org.au + :Web: | https://www.zap.org.au/projects/trader/ + :FTP: | https://ftp.zap.org.au/pub/trader/ + | ftp://ftp.zap.org.au/pub/trader/ Copyright ========= -Copyright (C) 1990-2017, John Zaitseff. +**Copyright © 1990–2019, John Zaitseff.** -Star Traders is free software that is distributed under the terms of the -GNU General Public License. You can redistribute it and/or modify it -under the terms of that License as published by the Free Software +Star Traders is free software that is distributed under the terms of the +GNU General Public License. You can redistribute it and/or modify it +under the terms of that License as published by the Free Software Foundation, either version 3 or (at your option) any later version. -This game is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in -the file COPYING for more details. +This game is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in +the file `COPYING` for more details. diff --git a/aclocal.m4 b/aclocal.m4 index db0d01d..c66567e 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1353,7 +1353,7 @@ fi AC_SUBST([$1])dnl ]) -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1365,10 +1365,10 @@ AC_SUBST([$1])dnl # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15.1], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -1384,14 +1384,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15.1])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1443,7 +1443,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1474,7 +1474,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1665,13 +1665,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -1679,49 +1678,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -1730,18 +1721,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1828,8 +1818,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -1896,7 +1886,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -1938,7 +1928,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1959,7 +1949,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1981,7 +1971,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2016,7 +2006,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2024,49 +2014,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2105,7 +2088,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2134,7 +2117,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2181,7 +2164,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2200,7 +2183,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2281,7 +2264,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2341,7 +2324,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2369,7 +2352,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2388,7 +2371,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2522,25 +2505,22 @@ AC_SUBST([am__untar]) m4_include([m4/00gnulib.m4]) m4_include([m4/absolute-header.m4]) m4_include([m4/assert.m4]) -m4_include([m4/ax_append_flag.m4]) m4_include([m4/ax_c___attribute__.m4]) m4_include([m4/ax_cflags_warn_all.m4]) +m4_include([m4/ax_compiler_vendor.m4]) +m4_include([m4/ax_prepend_flag.m4]) m4_include([m4/ax_require_defined.m4]) m4_include([m4/ax_with_curses.m4]) m4_include([m4/btowc.m4]) -m4_include([m4/builtin-expect.m4]) m4_include([m4/codeset.m4]) m4_include([m4/config-h.m4]) -m4_include([m4/configmake.m4]) m4_include([m4/extensions.m4]) m4_include([m4/extern-inline.m4]) -m4_include([m4/fcntl-o.m4]) m4_include([m4/getopt.m4]) m4_include([m4/gettimeofday.m4]) -m4_include([m4/glibc21.m4]) m4_include([m4/gnulib-common.m4]) m4_include([m4/gnulib-comp.m4]) -m4_include([m4/hard-locale.m4]) +m4_include([m4/host-cpu-c-abi.m4]) m4_include([m4/iconv.m4]) m4_include([m4/iconv_h.m4]) m4_include([m4/iconv_open.m4]) @@ -2557,6 +2537,7 @@ m4_include([m4/locale-ja.m4]) m4_include([m4/locale-zh.m4]) m4_include([m4/locale_h.m4]) m4_include([m4/localtime-buffer.m4]) +m4_include([m4/lock.m4]) m4_include([m4/longlong.m4]) m4_include([m4/mbrtowc.m4]) m4_include([m4/mbsinit.m4]) @@ -2565,9 +2546,11 @@ m4_include([m4/mbstate_t.m4]) m4_include([m4/mbtowc.m4]) m4_include([m4/memchr.m4]) m4_include([m4/mmap-anon.m4]) +m4_include([m4/monetary_h.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nocrash.m4]) m4_include([m4/off_t.m4]) +m4_include([m4/pthread_rwlock_rdlock.m4]) m4_include([m4/ssize_t.m4]) m4_include([m4/stdbool.m4]) m4_include([m4/stddef_h.m4]) @@ -2575,11 +2558,11 @@ m4_include([m4/stdint.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) m4_include([m4/string_h.m4]) -m4_include([m4/strstr.m4]) m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_time_h.m4]) m4_include([m4/sys_types_h.m4]) +m4_include([m4/threadlib.m4]) m4_include([m4/time_h.m4]) m4_include([m4/unistd_h.m4]) m4_include([m4/warn-on-use.m4]) @@ -2592,3 +2575,4 @@ m4_include([m4/wctomb.m4]) m4_include([m4/wctype_h.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/wmemcpy.m4]) +m4_include([m4/xopen-source.m4]) diff --git a/build-aux/README b/build-aux/README index 99f3cee..ed186fd 100644 --- a/build-aux/README +++ b/build-aux/README @@ -1,17 +1,16 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, build-aux, contains auxiliary build-related files for Star -Traders. The following scripts are specific to this package: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ - bootstrap - Generate auxiliary files needed for building - msgfmt-desktop - Use msgfmt(1) or cp(1) to copy desktop files +This directory, `build-aux`, contains auxiliary build-related files for +Star Traders. The following scripts are specific to this package: -All other files in this directory (other than this README file, of course) -are generated by Autoconf, Automake or Gnulib. The bootstrap shell script -generates these files by running those tools in the correct order; see the -top-level INSTALL file for more details. +* `bootstrap`: Generate auxiliary files needed for building +* `msgfmt-desktop`: Use ``msgfmt``\(1) or ``cp``\(1) to copy desktop files + +All other files in this directory (other than this `README` file, of +course) are generated by Autoconf, Automake or Gnulib. The bootstrap +shell script generates these files by running those tools in the correct +order; see the top-level `INSTALL` file for more details. diff --git a/build-aux/compile b/build-aux/compile index a85b723..99e5052 100755 --- a/build-aux/compile +++ b/build-aux/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/build-aux/config.guess b/build-aux/config.guess index 2e9ad7f..f50dcdb 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-10-02' +timestamp='2018-02-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2016-10-02' # 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 . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ timestamp='2016-10-02' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,46 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -310,28 +326,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -343,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -370,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -395,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -410,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -439,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -485,23 +492,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -527,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -554,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -566,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -584,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -598,7 +605,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -607,18 +614,18 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -633,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -687,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -712,15 +719,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -745,11 +752,11 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -758,7 +765,7 @@ EOF *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -766,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -793,127 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -927,63 +916,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -997,70 +986,74 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1074,34 +1067,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1111,12 +1104,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1126,9 +1119,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1148,9 +1141,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1170,9 +1163,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1181,28 +1174,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1213,7 +1206,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1233,23 +1226,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1268,49 +1261,56 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1321,7 +1321,7 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1329,19 +1329,25 @@ EOF UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1350,7 +1356,7 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 @@ -1361,7 +1367,7 @@ EOF else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1382,14 +1388,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1398,32 +1404,44 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/build-aux/config.rpath b/build-aux/config.rpath index af3c415..1644dbd 100755 --- a/build-aux/config.rpath +++ b/build-aux/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2017 Free Software Foundation, Inc. +# Copyright 1996-2019 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -57,7 +57,7 @@ else aix*) wl='-Wl,' ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' @@ -149,7 +149,7 @@ hardcode_direct=no hardcode_minus_L=no case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -198,7 +198,7 @@ if test "$with_gnu_ld" = yes; then ld_shlibs=no fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -348,7 +348,7 @@ else ;; bsdi[45]*) ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -533,7 +533,7 @@ case "$host_os" in bsdi[45]*) library_names_spec='$libname$shrext' ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; diff --git a/build-aux/config.sub b/build-aux/config.sub index dd2ca93..1d8e98b 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-11-04' +timestamp='2018-02-22' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2016-11-04' # 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 . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ timestamp='2016-11-04' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,7 +112,7 @@ esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ @@ -120,16 +120,16 @@ case $maybe_os in kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -178,44 +178,44 @@ case $os in ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,10 +227,7 @@ case $os in os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -263,7 +260,7 @@ case $basic_machine in | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -299,7 +296,7 @@ case $basic_machine in | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ @@ -315,7 +312,7 @@ case $basic_machine in | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ - | we32k \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -336,7 +333,7 @@ case $basic_machine in basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown @@ -365,7 +362,7 @@ case $basic_machine in ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -388,7 +385,7 @@ case $basic_machine in | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -446,6 +443,7 @@ case $basic_machine in | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -459,7 +457,7 @@ case $basic_machine in # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -493,7 +491,7 @@ case $basic_machine in basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -538,7 +536,7 @@ case $basic_machine in os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -546,13 +544,13 @@ case $basic_machine in os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -641,7 +639,7 @@ case $basic_machine in basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; @@ -650,7 +648,7 @@ case $basic_machine in os=$os"spe" ;; e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) @@ -742,9 +740,6 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -757,26 +752,26 @@ case $basic_machine in basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -795,19 +790,16 @@ case $basic_machine in os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -839,10 +831,10 @@ case $basic_machine in os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -861,7 +853,7 @@ case $basic_machine in os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -903,7 +895,7 @@ case $basic_machine in basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -948,6 +940,12 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf @@ -980,7 +978,7 @@ case $basic_machine in os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -996,7 +994,7 @@ case $basic_machine in basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -1011,16 +1009,16 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1030,23 +1028,23 @@ case $basic_machine in ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1100,17 +1098,10 @@ case $basic_machine in sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1129,7 +1120,7 @@ case $basic_machine in os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1251,6 +1242,9 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; xbox) basic_machine=i686-pc os=-mingw32 @@ -1259,20 +1253,12 @@ case $basic_machine in basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1301,10 +1287,6 @@ case $basic_machine in vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1314,9 +1296,6 @@ case $basic_machine in sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1336,7 +1315,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1344,10 +1323,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1358,8 +1337,8 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux @@ -1370,18 +1349,19 @@ case $os in -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -1391,25 +1371,26 @@ case $os in | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1426,12 +1407,12 @@ case $os in -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1440,10 +1421,10 @@ case $os in os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1454,12 +1435,6 @@ case $os in -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1484,7 +1459,7 @@ case $os in -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1506,7 +1481,7 @@ case $os in -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1521,24 +1496,28 @@ case $os in -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; -ios) @@ -1548,7 +1527,7 @@ case $os in *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1638,12 +1617,12 @@ case $basic_machine in sparc-* | *-sun) os=-sunos4.1.1 ;; + pru-*) + os=-elf + ;; *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1683,7 +1662,7 @@ case $basic_machine in m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1698,9 +1677,6 @@ case $basic_machine in i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1810,15 +1786,15 @@ case $basic_machine in vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/build-aux/depcomp b/build-aux/depcomp index fc98710..65cbf70 100755 --- a/build-aux/depcomp +++ b/build-aux/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # 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 @@ -16,7 +16,7 @@ scriptversion=2013-05-30.07; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/build-aux/install-sh b/build-aux/install-sh index 59990a1..8175c64 100755 --- a/build-aux/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 @@ -434,8 +444,8 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/build-aux/missing b/build-aux/missing index f62bbae..625aeb1 100755 --- a/build-aux/missing +++ b/build-aux/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC # 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 . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ else exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/config.h.in b/config.h.in index 8ee0c34..7173608 100644 --- a/config.h.in +++ b/config.h.in @@ -33,6 +33,10 @@ whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module lock shall be considered present. */ +#undef GNULIB_LOCK + /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU @@ -62,9 +66,6 @@ /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR -/* Define to 1 when the gnulib module strstr should be tested. */ -#undef GNULIB_TEST_STRSTR - /* Define to 1 when the gnulib module wcrtomb should be tested. */ #undef GNULIB_TEST_WCRTOMB @@ -124,10 +125,6 @@ */ #undef HAVE_DCGETTEXT -/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_GETC_UNLOCKED - /* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you don't. */ #undef HAVE_DECL_MBRTOWC @@ -209,9 +206,15 @@ /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T +/* Define to 1 if you have the `mbtowc' function. */ +#undef HAVE_MBTOWC + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H +/* Define to 1 if you have the header file. */ +#undef HAVE_MONETARY_H + /* Define to 1 if you have the `mprotect' function. */ #undef HAVE_MPROTECT @@ -233,525 +236,15 @@ /* Define to 1 if is present */ #undef HAVE_NCURSES_H -/* Define to 1 if atoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ATOLL +/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ +#undef HAVE_PTHREAD_MUTEX_RECURSIVE -/* Define to 1 if btowc is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_BTOWC +/* Define if the POSIX multithreading library has read/write locks. */ +#undef HAVE_PTHREAD_RWLOCK -/* Define to 1 if canonicalize_file_name is declared even after undefining - macros. */ -#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME - -/* Define to 1 if chdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_CHDIR - -/* Define to 1 if chown is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_CHOWN - -/* Define to 1 if dprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DPRINTF - -/* Define to 1 if dup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUP - -/* Define to 1 if dup2 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUP2 - -/* Define to 1 if dup3 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUP3 - -/* Define to 1 if duplocale is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_DUPLOCALE - -/* Define to 1 if endusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ENDUSERSHELL - -/* Define to 1 if environ is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ENVIRON - -/* Define to 1 if euidaccess is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_EUIDACCESS - -/* Define to 1 if faccessat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FACCESSAT - -/* Define to 1 if fchdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHDIR - -/* Define to 1 if fchmodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHMODAT - -/* Define to 1 if fchownat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHOWNAT - -/* Define to 1 if fdatasync is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FDATASYNC - -/* Define to 1 if ffsl is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FFSL - -/* Define to 1 if ffsll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FFSLL - -/* Define to 1 if fpurge is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FPURGE - -/* Define to 1 if fseeko is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSEEKO - -/* Define to 1 if fstat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSTAT - -/* Define to 1 if fstatat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSTATAT - -/* Define to 1 if fsync is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSYNC - -/* Define to 1 if ftello is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTELLO - -/* Define to 1 if ftruncate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTRUNCATE - -/* Define to 1 if futimens is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FUTIMENS - -/* Define to 1 if getcwd is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETCWD - -/* Define to 1 if getdelim is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDELIM - -/* Define to 1 if getdomainname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDOMAINNAME - -/* Define to 1 if getdtablesize is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDTABLESIZE - -/* Define to 1 if getgroups is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETGROUPS - -/* Define to 1 if gethostname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETHOSTNAME - -/* Define to 1 if getline is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLINE - -/* Define to 1 if getloadavg is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOADAVG - -/* Define to 1 if getlogin is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN - -/* Define to 1 if getlogin_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN_R - -/* Define to 1 if getpagesize is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETPAGESIZE - -/* Define to 1 if gets is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETS - -/* Define to 1 if getsubopt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETSUBOPT - -/* Define to 1 if gettimeofday is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETTIMEOFDAY - -/* Define to 1 if getusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETUSERSHELL - -/* Define to 1 if grantpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GRANTPT - -/* Define to 1 if group_member is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GROUP_MEMBER - -/* Define to 1 if initstate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_INITSTATE - -/* Define to 1 if initstate_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_INITSTATE_R - -/* Define to 1 if isatty is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ISATTY - -/* Define to 1 if iswctype is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ISWCTYPE - -/* Define to 1 if lchmod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHMOD - -/* Define to 1 if lchown is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHOWN - -/* Define to 1 if link is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINK - -/* Define to 1 if linkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINKAT - -/* Define to 1 if lseek is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSEEK - -/* Define to 1 if lstat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSTAT - -/* Define to 1 if mbrlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBRLEN - -/* Define to 1 if mbrtowc is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBRTOWC - -/* Define to 1 if mbsinit is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSINIT - -/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSNRTOWCS - -/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSRTOWCS - -/* Define to 1 if memmem is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMMEM - -/* Define to 1 if mempcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMPCPY - -/* Define to 1 if memrchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMRCHR - -/* Define to 1 if mkdirat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDIRAT - -/* Define to 1 if mkdtemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDTEMP - -/* Define to 1 if mkfifo is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFO - -/* Define to 1 if mkfifoat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFOAT - -/* Define to 1 if mknod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNOD - -/* Define to 1 if mknodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNODAT - -/* Define to 1 if mkostemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMP - -/* Define to 1 if mkostemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMPS - -/* Define to 1 if mkstemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMP - -/* Define to 1 if mkstemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMPS - -/* Define to 1 if pclose is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PCLOSE - -/* Define to 1 if pipe is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PIPE - -/* Define to 1 if pipe2 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PIPE2 - -/* Define to 1 if popen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_POPEN - -/* Define to 1 if posix_openpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_POSIX_OPENPT - -/* Define to 1 if pread is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PREAD - -/* Define to 1 if ptsname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PTSNAME - -/* Define to 1 if ptsname_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PTSNAME_R - -/* Define to 1 if pwrite is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PWRITE - -/* Define to 1 if qsort_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_QSORT_R - -/* Define to 1 if random is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RANDOM - -/* Define to 1 if random_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RANDOM_R - -/* Define to 1 if rawmemchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RAWMEMCHR - -/* Define to 1 if readlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_READLINK - -/* Define to 1 if readlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_READLINKAT - -/* Define to 1 if reallocarray is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_REALLOCARRAY - -/* Define to 1 if realpath is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_REALPATH - -/* Define to 1 if renameat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RENAMEAT - -/* Define to 1 if rmdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RMDIR - -/* Define to 1 if rpmatch is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RPMATCH - -/* Define to 1 if secure_getenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SECURE_GETENV - -/* Define to 1 if setenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETENV - -/* Define to 1 if sethostname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETHOSTNAME - -/* Define to 1 if setlocale is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETLOCALE - -/* Define to 1 if setstate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETSTATE - -/* Define to 1 if setstate_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETSTATE_R - -/* Define to 1 if setusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SETUSERSHELL - -/* Define to 1 if sleep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SLEEP - -/* Define to 1 if snprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SNPRINTF - -/* Define to 1 if srandom is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SRANDOM - -/* Define to 1 if srandom_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SRANDOM_R - -/* Define to 1 if stat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STAT - -/* Define to 1 if stpcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPCPY - -/* Define to 1 if stpncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPNCPY - -/* Define to 1 if strcasestr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCASESTR - -/* Define to 1 if strchrnul is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCHRNUL - -/* Define to 1 if strdup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRDUP - -/* Define to 1 if strerror_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRERROR_R - -/* Define to 1 if strncat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNCAT - -/* Define to 1 if strndup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNDUP - -/* Define to 1 if strnlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNLEN - -/* Define to 1 if strpbrk is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRPBRK - -/* Define to 1 if strsep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSEP - -/* Define to 1 if strsignal is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSIGNAL - -/* Define to 1 if strtod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOD - -/* Define to 1 if strtok_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOK_R - -/* Define to 1 if strtoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOLL - -/* Define to 1 if strtoull is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOULL - -/* Define to 1 if strverscmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRVERSCMP - -/* Define to 1 if symlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINK - -/* Define to 1 if symlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINKAT - -/* Define to 1 if tmpfile is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TMPFILE - -/* Define to 1 if towctrans is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TOWCTRANS - -/* Define to 1 if truncate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TRUNCATE - -/* Define to 1 if ttyname_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TTYNAME_R - -/* Define to 1 if unlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINK - -/* Define to 1 if unlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINKAT - -/* Define to 1 if unlockpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLOCKPT - -/* Define to 1 if unsetenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNSETENV - -/* Define to 1 if usleep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_USLEEP - -/* Define to 1 if utimensat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UTIMENSAT - -/* Define to 1 if vdprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VDPRINTF - -/* Define to 1 if vsnprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VSNPRINTF - -/* Define to 1 if wcpcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCPCPY - -/* Define to 1 if wcpncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCPNCPY - -/* Define to 1 if wcrtomb is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCRTOMB - -/* Define to 1 if wcscasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCASECMP - -/* Define to 1 if wcscat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCAT - -/* Define to 1 if wcschr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCHR - -/* Define to 1 if wcscmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCMP - -/* Define to 1 if wcscoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCOLL - -/* Define to 1 if wcscpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCPY - -/* Define to 1 if wcscspn is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCSPN - -/* Define to 1 if wcsdup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSDUP - -/* Define to 1 if wcsftime is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSFTIME - -/* Define to 1 if wcslen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSLEN - -/* Define to 1 if wcsncasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCASECMP - -/* Define to 1 if wcsncat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCAT - -/* Define to 1 if wcsncmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCMP - -/* Define to 1 if wcsncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCPY - -/* Define to 1 if wcsnlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNLEN - -/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNRTOMBS - -/* Define to 1 if wcspbrk is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSPBRK - -/* Define to 1 if wcsrchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSRCHR - -/* Define to 1 if wcsrtombs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSRTOMBS - -/* Define to 1 if wcsspn is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSSPN - -/* Define to 1 if wcsstr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSSTR - -/* Define to 1 if wcstok is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSTOK - -/* Define to 1 if wcswidth is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSWIDTH - -/* Define to 1 if wcsxfrm is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSXFRM - -/* Define to 1 if wctob is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTOB - -/* Define to 1 if wctrans is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTRANS - -/* Define to 1 if wctype is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTYPE - -/* Define to 1 if wcwidth is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCWIDTH - -/* Define to 1 if wmemchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCHR - -/* Define to 1 if wmemcmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCMP - -/* Define to 1 if wmemcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCPY - -/* Define to 1 if wmemmove is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMMOVE - -/* Define to 1 if wmemset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMSET - -/* Define to 1 if _Exit is declared even after undefining macros. */ -#undef HAVE_RAW_DECL__EXIT +/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a + reader. */ +#undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T @@ -774,9 +267,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `symlink' function. */ -#undef HAVE_SYMLINK - /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H @@ -801,6 +291,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H +/* Define to 1 if you have the header file. */ +#undef HAVE_THREADS_H + /* Define to 1 if you have the `towlower' function. */ #undef HAVE_TOWLOWER @@ -834,12 +327,6 @@ /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T -/* Define to 1 if O_NOATIME works. */ -#undef HAVE_WORKING_O_NOATIME - -/* Define to 1 if O_NOFOLLOW works. */ -#undef HAVE_WORKING_O_NOFOLLOW - /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H @@ -849,16 +336,6 @@ /* define if your compiler has __attribute__ */ #undef HAVE___ATTRIBUTE__ -/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#undef HAVE___BUILTIN_EXPECT -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - - /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST @@ -866,6 +343,9 @@ implementation. */ #undef ICONV_FLAVOR +/* Define to the latest version of _XOPEN_SOURCE that is supported. */ +#undef LATEST_XOPEN_SOURCE + /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS @@ -918,6 +398,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define if the pthread_in_use() detection is hard. */ +#undef PTHREAD_IN_USE_DETECTION_HARD + /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX @@ -936,6 +419,13 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Define if the POSIX multithreading library can be used. */ +#undef USE_POSIX_THREADS + +/* Define if references to the POSIX multithreading library should be made + weak. */ +#undef USE_POSIX_THREADS_WEAK + /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE @@ -998,12 +488,20 @@ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif +/* Define if the native Windows multithreading API can be used. */ +#undef USE_WINDOWS_THREADS + /* Version number of package */ #undef VERSION @@ -1025,12 +523,18 @@ #undef _NETBSD_SOURCE /* The _Noreturn keyword of C11. */ -#if ! (defined _Noreturn \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ - || 0x5110 <= __SUNPRO_C) +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER))) +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif defined _MSC_VER && 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -1058,10 +562,37 @@ /* Define to 1 if the system predates C++11. */ #undef __STDC_LIMIT_MACROS +/* The _GL_ASYNC_SAFE marker should be attached to functions that are + signal handlers (for signals other than SIGABRT, SIGPIPE) or can be + invoked from such signal handlers. Such functions have some restrictions: + * All functions that it calls should be marked _GL_ASYNC_SAFE as well, + or should be listed as async-signal-safe in POSIX + + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in + particular, are NOT async-signal-safe. + * All memory locations (variables and struct fields) that these functions + access must be marked 'volatile'. This holds for both read and write + accesses. Otherwise the compiler might optimize away stores to and + reads from such locations that occur in the program, depending on its + data flow analysis. For example, when the program contains a loop + that is intended to inspect a variable set from within a signal handler + while (!signal_occurred) + ; + the compiler is allowed to transform this into an endless loop if the + variable 'signal_occurred' is not declared 'volatile'. + Additionally, recall that: + * A signal handler should not modify errno (except if it is a handler + for a fatal signal and ends by raising the same signal again, thus + provoking the termination of the process). If it invokes a function + that may clobber errno, it needs to save and restore the value of + errno. */ +#define _GL_ASYNC_SAFE + + /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see - . + . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f @@ -1075,20 +606,32 @@ if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions - from calling static functions. This bug is known to occur on: + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: OS X 10.8 and earlier; see: - http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see - http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: - http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. */ + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ @@ -1234,3 +777,15 @@ # define _GL_ATTRIBUTE_CONST /* empty */ #endif +/* The __malloc__ attribute was added in gcc 3. */ +#if 3 <= __GNUC__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC /* empty */ +#endif + + + +/* Redefine _XOPEN_SOURCE as required */ +#include + diff --git a/configure b/configure index 1840ec8..d6f7ca1 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Star Traders 7.12. +# Generated by GNU Autoconf 2.69 for Star Traders 7.13. # # Report bugs to . # @@ -580,10 +580,10 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Star Traders' PACKAGE_TARNAME='trader' -PACKAGE_VERSION='7.12' -PACKAGE_STRING='Star Traders 7.12' +PACKAGE_VERSION='7.13' +PACKAGE_STRING='Star Traders 7.13' PACKAGE_BUGREPORT='J.Zaitseff@zap.org.au' -PACKAGE_URL='http://www.zap.org.au/software/trader/' +PACKAGE_URL='https://www.zap.org.au/projects/trader/' ac_unique_file="src/trader.c" ac_config_libobj_dir=lib @@ -623,6 +623,8 @@ ac_includes_default="\ # include #endif" +gl_use_threads_default= +gl_use_winpthreads_default= gt_needs= ac_func_list= gl_getopt_required=POSIX @@ -647,10 +649,20 @@ LIBGNU_LIBDEPS gltests_WITNESS gl_GNULIB_ENABLED_wmemcpy_FALSE gl_GNULIB_ENABLED_wmemcpy_TRUE +gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE +gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE +gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE +gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE +gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE +gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE +gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE +gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE gl_GNULIB_ENABLED_wctomb_FALSE gl_GNULIB_ENABLED_wctomb_TRUE gl_GNULIB_ENABLED_verify_FALSE gl_GNULIB_ENABLED_verify_TRUE +gl_GNULIB_ENABLED_threadlib_FALSE +gl_GNULIB_ENABLED_threadlib_TRUE gl_GNULIB_ENABLED_strnlen1_FALSE gl_GNULIB_ENABLED_strnlen1_TRUE gl_GNULIB_ENABLED_streq_FALSE @@ -665,25 +677,26 @@ gl_GNULIB_ENABLED_mbtowc_FALSE gl_GNULIB_ENABLED_mbtowc_TRUE gl_GNULIB_ENABLED_mbsinit_FALSE gl_GNULIB_ENABLED_mbsinit_TRUE +gl_GNULIB_ENABLED_lock_FALSE +gl_GNULIB_ENABLED_lock_TRUE gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9_FALSE gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9_TRUE gl_GNULIB_ENABLED_localcharset_FALSE gl_GNULIB_ENABLED_localcharset_TRUE gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_FALSE gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE -gl_GNULIB_ENABLED_configmake_FALSE -gl_GNULIB_ENABLED_configmake_TRUE -gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_FALSE -gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_TRUE NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H REPLACE_WCTOMB REPLACE_UNSETENV +REPLACE_STRTOLD REPLACE_STRTOD +REPLACE_SETSTATE REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOC REPLACE_RANDOM_R +REPLACE_RANDOM REPLACE_QSORT_R REPLACE_PUTENV REPLACE_PTSNAME_R @@ -691,6 +704,7 @@ REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC +REPLACE_INITSTATE REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC HAVE_DECL_UNSETENV @@ -699,8 +713,10 @@ HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOLL +HAVE_STRTOLD HAVE_STRTOD HAVE_DECL_SETSTATE +HAVE_SETSTATE HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV @@ -719,7 +735,9 @@ HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP +HAVE_MBTOWC HAVE_DECL_INITSTATE +HAVE_INITSTATE HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG @@ -732,6 +750,7 @@ GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX GNULIB_STRTOULL GNULIB_STRTOLL +GNULIB_STRTOLD GNULIB_STRTOD GNULIB_SETENV GNULIB_SECURE_GETENV @@ -760,10 +779,11 @@ GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT +LTLIBMULTITHREAD +LIBMULTITHREAD +LTLIBTHREAD +LIBTHREAD LOCALCHARSET_TESTS_ENVIRONMENT -GLIBC21 -pkglibexecdir -lispdir REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H @@ -844,17 +864,17 @@ GNULIB_FCHMODAT NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H UNDEFINE_STRTOK_R -REPLACE_STRTOK_R REPLACE_STRSIGNAL +REPLACE_STRERROR_R +REPLACE_STRERROR +REPLACE_STRTOK_R +REPLACE_STRCASESTR +REPLACE_STRSTR REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT -REPLACE_STRERROR_R -REPLACE_STRERROR -REPLACE_STRCHRNUL -REPLACE_STRCASESTR -REPLACE_STRSTR REPLACE_STRDUP +REPLACE_STRCHRNUL REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR @@ -1054,6 +1074,15 @@ GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H APPLE_UNIVERSAL_BUILD +GL_GENERATE_MONETARY_H_FALSE +GL_GENERATE_MONETARY_H_TRUE +MONETARY_H +HAVE_MONETARY_H +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H +NEXT_MONETARY_H +REPLACE_STRFMON_L +HAVE_STRFMON_L +GNULIB_STRFMON_L LOCALE_FR_UTF8 LOCALE_ZH_CN LOCALE_JA @@ -1069,10 +1098,15 @@ HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL REPLACE_STRUCT_LCONV +REPLACE_FREELOCALE REPLACE_DUPLOCALE +REPLACE_NEWLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV +HAVE_FREELOCALE HAVE_DUPLOCALE +HAVE_NEWLOCALE +GNULIB_LOCALENAME GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV @@ -1158,6 +1192,7 @@ REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY +REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R @@ -1166,13 +1201,16 @@ REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT +REPLACE_FACCESSAT REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN +REPLACE_ACCESS HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R +HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE @@ -1184,7 +1222,6 @@ HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT -HAVE_TRUNCATE HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP @@ -1199,6 +1236,7 @@ HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER +HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME @@ -1213,6 +1251,7 @@ HAVE_FACCESSAT HAVE_EUIDACCESS HAVE_DUP3 HAVE_DUP2 +HAVE_COPY_FILE_RANGE HAVE_CHOWN GNULIB_WRITE GNULIB_USLEEP @@ -1241,6 +1280,7 @@ GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL +GNULIB_GETPASS GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN @@ -1260,9 +1300,11 @@ GNULIB_ENVIRON GNULIB_DUP3 GNULIB_DUP2 GNULIB_DUP +GNULIB_COPY_FILE_RANGE GNULIB_CLOSE GNULIB_CHOWN GNULIB_CHDIR +GNULIB_ACCESS LOCALE_FR REPLACE_WCSFTIME REPLACE_WCSWIDTH @@ -1367,14 +1409,6 @@ INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 @@ -1386,6 +1420,14 @@ MSGFMT GETTEXT_MACRO_VERSION USE_NLS SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build RANLIB ARFLAGS AR @@ -1399,7 +1441,6 @@ am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -1477,18 +1518,21 @@ PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable_dependency_tracking +enable_threads enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix +enable_cross_guesses enable_assert with_ncurses with_ncursesw @@ -2057,7 +2101,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Star Traders 7.12 to adapt to many kinds of systems. +\`configure' configures Star Traders 7.13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2128,7 +2172,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Star Traders 7.12:";; + short | recursive ) echo "Configuration of Star Traders 7.13:";; esac cat <<\_ACEOF @@ -2145,8 +2189,13 @@ Optional Features: do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build + --enable-threads={posix|windows} + specify multithreading API + --disable-threads build without multithread safety --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths + --enable-cross-guesses={conservative|risky} + specify policy for cross-compilation guesses --disable-assert turn off assertions Optional Packages: @@ -2182,7 +2231,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . -Star Traders home page: . +Star Traders home page: . _ACEOF ac_status=$? fi @@ -2245,7 +2294,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Star Traders configure 7.12 +Star Traders configure 7.13 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2897,7 +2946,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Star Traders $as_me 7.12, which was +It was created by Star Traders $as_me 7.13, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3177,7 +3226,7 @@ $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -gt_needs="$gt_needs " +gt_needs="$gt_needs need-ngettext" as_fn_append ac_func_list " btowc" gl_getopt_required=GNU as_fn_append ac_header_list " getopt.h" @@ -3191,10 +3240,9 @@ as_fn_append ac_header_list " xlocale.h" as_fn_append ac_func_list " mbsinit" as_fn_append ac_func_list " mbrtowc" as_fn_append ac_func_list " mbsrtowcs" +as_fn_append ac_header_list " monetary.h" as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" -as_fn_append ac_header_list " sys/mman.h" -as_fn_append ac_func_list " mprotect" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " features.h" @@ -3204,7 +3252,9 @@ as_fn_append ac_func_list " wcsdup" as_fn_append ac_func_list " wctob" as_fn_append ac_func_list " iswcntrl" as_fn_append ac_header_list " wctype.h" -as_fn_append ac_func_list " symlink" +as_fn_append ac_header_list " threads.h" +as_fn_append ac_header_list " sys/mman.h" +as_fn_append ac_func_list " mprotect" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -3311,7 +3361,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" -am__api_version='1.15' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3797,7 +3847,7 @@ fi # Define the identity of the package. PACKAGE='trader' - VERSION='7.12' + VERSION='7.13' cat >>confdefs.h <<_ACEOF @@ -3827,8 +3877,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3879,7 +3929,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -4766,45 +4816,45 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -5667,6 +5717,8 @@ $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h + $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + @@ -5914,6 +5966,133 @@ fi +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + + + + + + + # Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then : + enableval=$enable_threads; gl_use_threads=$enableval +else + if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else + case "$host_os" in + osf*) gl_use_threads=no ;; + cygwin*) + case `uname -r` in + 1.[0-5].*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ;; + mingw*) + case "$gl_use_winpthreads_default" in + yes) gl_use_threads=posix ;; + no) gl_use_threads=windows ;; + *) gl_use_threads=yes ;; + esac + ;; + *) gl_use_threads=yes ;; + esac + fi + +fi + + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + fi + # Pre-early section. @@ -5924,11 +6103,9 @@ fi # Code from module absolute-header: # Code from module assert: # Code from module btowc: - # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-strcase: # Code from module config-h: - # Code from module configmake: # Code from module crc: # Code from module extensions: # Code from module extern-inline: @@ -5948,11 +6125,13 @@ fi # Code from module localcharset: # Code from module locale: # Code from module localtime-buffer: + # Code from module lock: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbsrtowcs: # Code from module mbtowc: # Code from module memchr: + # Code from module monetary: # Code from module multiarch: # Code from module nocrash: # Code from module snippet/_Noreturn: @@ -5970,11 +6149,13 @@ fi # Code from module striconv: # Code from module string: # Code from module strnlen1: - # Code from module strstr: - # Code from module strstr-simple: # Code from module sys_stat: # Code from module sys_time: # Code from module sys_types: + # Code from module threadlib: + + + # Code from module time: # Code from module unistd: # Code from module unistr/base: @@ -5988,51 +6169,163 @@ fi # Code from module wctob: # Code from module wctomb: # Code from module wctype-h: + # Code from module windows-mutex: + # Code from module windows-once: + # Code from module windows-recmutex: + # Code from module windows-rwlock: # Code from module wmemcpy: -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for maximum warnings" >&5 -$as_echo_n "checking CFLAGS for maximum warnings... " >&6; } -if ${ac_cv_cflags_warn_all+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5 +$as_echo_n "checking for C compiler vendor... " >&6; } +if ${ax_cv_c_compiler_vendor+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_cflags_warn_all="no, unknown" -ac_save_CFLAGS="$CFLAGS" -for ac_arg in "-warn all % -warn all" "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" # -do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + vendors=" + intel: __ICC,__ECC,__INTEL_COMPILER + ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__ + pathscale: __PATHCC__,__PATHSCALE__ + clang: __clang__ + cray: _CRAYC + fujitsu: __FUJITSU + sdcc: SDCC,__SDCC + sx: _SX + portland: __PGI + gnu: __GNUC__ + sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95 + hp: __HP_cc,__HP_aCC + dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER + borland: __BORLANDC__,__CODEGEARC__,__TURBOC__ + comeau: __COMO__ + kai: __KCC + lcc: __LCC__ + sgi: __sgi,sgi + microsoft: _MSC_VER + metrowerks: __MWERKS__ + watcom: __WATCOMC__ + tcc: __TINYC__ + unknown: UNKNOWN + " + for ventest in $vendors; do + case $ventest in + *:) + vendor=$ventest + continue + ;; + *) + vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")" + ;; + esac + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { +#if !($vencpp) + thisisanerror; +#endif + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break + break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -CFLAGS="$ac_save_CFLAGS" + done + + ax_cv_c_compiler_vendor=`echo $vendor | cut -d: -f1` fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 -$as_echo "$ac_cv_cflags_warn_all" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 +$as_echo "$ax_cv_c_compiler_vendor" >&6; } + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -case ".$ac_cv_cflags_warn_all" in - .ok|.ok,*) ;; - .|.no|.no,*) ;; - *) + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for most reasonable warnings" >&5 +$as_echo_n "checking CFLAGS for most reasonable warnings... " >&6; } +if ${ac_cv_cflags_warn_all+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_cflags_warn_all="" + ac_save_cflags_warn_all_found="yes" + case "$ax_cv_c_compiler_vendor" in #( + intel) : + ac_cv_cflags_warn_all="-w2" ;; #( + ibm) : + ac_cv_cflags_warn_all="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" ;; #( + pathscale) : + ;; #( + clang) : + ac_cv_cflags_warn_all="-Wall" ;; #( + cray) : + ac_cv_cflags_warn_all="-h msglevel 2" ;; #( + fujitsu) : + ;; #( + sdcc) : + ;; #( + sx) : + ac_cv_cflags_warn_all="-pvctl,fullmsg" ;; #( + portland) : + ;; #( + gnu) : + ac_cv_cflags_warn_all="-Wall" ;; #( + sun) : + ac_cv_cflags_warn_all="-v" ;; #( + hp) : + ac_cv_cflags_warn_all="+w1" ;; #( + dec) : + ac_cv_cflags_warn_all="-verbose -w0 -warnprotos" ;; #( + borland) : + ;; #( + comeau) : + ;; #( + kai) : + ;; #( + lcc) : + ;; #( + sgi) : + ac_cv_cflags_warn_all="-fullwarn" ;; #( + microsoft) : + ;; #( + metrowerks) : + ;; #( + watcom) : + ;; #( + tcc) : + ;; #( + unknown) : + + ac_cv_cflags_warn_all="" + ac_save_cflags_warn_all_found="no" + ;; #( + *) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&5 +$as_echo "$as_me: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&2;} + ac_cv_cflags_warn_all="" + ac_save_cflags_warn_all_found="no" + + ;; +esac + + if test "x$ac_save_cflags_warn_all_found" = "xyes"; then : + if test "x$ac_cv_cflags_warn_all" != "x"; then : + if ${CFLAGS+:} false; then : case " $CFLAGS " in #( @@ -6044,7 +6337,7 @@ if ${CFLAGS+:} false; then : test $ac_status = 0; } ;; #( *) : - as_fn_append CFLAGS " $ac_cv_cflags_warn_all" + CFLAGS="$ac_cv_cflags_warn_all $CFLAGS" { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? @@ -6063,10 +6356,18 @@ else test $ac_status = 0; } fi - ;; -esac -ac_ext=c +fi + +else + true + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 +$as_echo "$ac_cv_cflags_warn_all" >&6; } + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -6518,77 +6819,6 @@ fi eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - # Check whether --with-gnu-ld was given. @@ -6693,12 +6923,13 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined _ARCH_PPC64 - yes - #endif + int ok; + #else + error fail + #endif _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : +if ac_fn_c_try_compile "$LINENO"; then : # The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in @@ -6707,8 +6938,30 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | esac fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + sparc64-*-netbsd*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + # The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; esac @@ -6780,6 +7033,288 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +$as_echo_n "checking 32-bit host C ABI... " >&6; } +if ${gl_cv_host_cpu_c_abi_32bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + *) + gl_cv_host_cpu_c_abi_32bit=no ;; + esac + else + case "$host_cpu" in + + # CPUs that only support a 32-bit ABI. + arc \ + | bfin \ + | cris* \ + | csky \ + | epiphany \ + | ft32 \ + | h8300 \ + | m68k \ + | microblaze | microblazeel \ + | nds32 | nds32le | nds32be \ + | nios2 | nios2eb | nios2el \ + | or1k* \ + | or32 \ + | sh | sh1234 | sh1234elb \ + | tic6x \ + | xtensa* ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + i[34567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=yes +else + gl_cv_host_cpu_c_abi_32bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=no + ;; + esac + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if ${gl_cv_solaris_64bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _LP64 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; };; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 $as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } if ${acl_cv_libdirstems+:} false; then : @@ -6789,32 +7324,7 @@ else acl_libdirstem2= case "$host_os" in solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 -$as_echo_n "checking for 64-bit host... " >&6; } -if ${gl_cv_solaris_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _LP64 -sixtyfour bits -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sixtyfour bits" >/dev/null 2>&1; then : - gl_cv_solaris_64bit=yes -else - gl_cv_solaris_64bit=no -fi -rm -f conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 -$as_echo "$gl_cv_solaris_64bit" >&6; } - if test $gl_cv_solaris_64bit = yes; then + if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; @@ -6823,30 +7333,32 @@ $as_echo "$gl_cv_solaris_64bit" >&6; } fi ;; *) - searchpath=`(if test -f /usr/bin/gcc \ - && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ - LC_ALL=C /usr/bin/gcc -print-search-dirs; \ - else \ - LC_ALL=C $CC -print-search-dirs; \ - fi) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi fi ;; esac @@ -6870,7 +7382,6 @@ $as_echo "$acl_cv_libdirstems" >&6; } - use_additional=yes acl_save_prefix="$prefix" @@ -6908,7 +7419,7 @@ if test "${with_libiconv_prefix+set}" = set; then : additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -7347,7 +7858,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 @@ -7780,7 +8290,6 @@ $as_echo "$LIBICONV" >&6; } - use_additional=yes acl_save_prefix="$prefix" @@ -7818,7 +8327,7 @@ if test "${with_libintl_prefix+set}" = set; then : additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -8234,7 +8743,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : @@ -8437,6 +8945,26 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + # Check whether --enable-cross-guesses was given. +if test "${enable_cross_guesses+set}" = set; then : + enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} + enableval=conservative + fi + gl_cross_guesses="$enableval" +else + gl_cross_guesses=conservative +fi + + if test $gl_cross_guesses = risky; then + gl_cross_guess_normal="guessing yes" + gl_cross_guess_inverted="guessing no" + else + gl_cross_guess_normal="guessing no" + gl_cross_guess_inverted="guessing yes" + fi LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ @@ -8561,7 +9089,8 @@ int main () { return zero(); } _ACEOF save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if echo '#include "conftest.c"' >conftest1.c && + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 @@ -8582,7 +9111,8 @@ int zero (void) { return 0; } _ACEOF ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if echo '#include "conftest.c"' >conftest2.c && + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 @@ -8595,7 +9125,7 @@ _ACEOF fi fi ac_compile="$save_ac_compile" - rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 @@ -8606,7 +9136,7 @@ This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of - , or + , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 @@ -8685,8 +9215,14 @@ else struct tm t; char buf[16]; int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -8694,9 +9230,9 @@ int main () { if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -8705,32 +9241,33 @@ int main () { some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; -#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ +# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; -#endif +# endif return 0; +#endif } _ACEOF @@ -8802,9 +9339,11 @@ $as_echo "$gt_cv_locale_fr" >&6; } + GNULIB_ACCESS=0; GNULIB_CHDIR=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; + GNULIB_COPY_FILE_RANGE=0; GNULIB_DUP=0; GNULIB_DUP2=0; GNULIB_DUP3=0; @@ -8824,6 +9363,7 @@ $as_echo "$gt_cv_locale_fr" >&6; } GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; + GNULIB_GETPASS=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; @@ -8852,6 +9392,7 @@ $as_echo "$gt_cv_locale_fr" >&6; } GNULIB_USLEEP=0; GNULIB_WRITE=0; HAVE_CHOWN=1; + HAVE_COPY_FILE_RANGE=1; HAVE_DUP2=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; @@ -8866,6 +9407,7 @@ $as_echo "$gt_cv_locale_fr" >&6; } HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; + HAVE_GETPASS=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; @@ -8880,7 +9422,6 @@ $as_echo "$gt_cv_locale_fr" >&6; } HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; - HAVE_TRUNCATE=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; @@ -8892,13 +9433,16 @@ $as_echo "$gt_cv_locale_fr" >&6; } HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; + HAVE_DECL_TRUNCATE=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; + REPLACE_ACCESS=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; + REPLACE_FACCESSAT=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; @@ -8907,6 +9451,7 @@ $as_echo "$gt_cv_locale_fr" >&6; } REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; + REPLACE_GETPASS=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; @@ -9378,7 +9923,7 @@ else POSIXLY_CORRECT=1 export POSIXLY_CORRECT if test "$cross_compiling" = yes; then : - gl_cv_func_getopt_gnu="guessing no" + gl_cv_func_getopt_gnu="$gl_cross_guess_normal" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9424,7 +9969,7 @@ nocrash_init (void) /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { - /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { @@ -9443,14 +9988,14 @@ nocrash_init (void) for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. - See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include @@ -9687,17 +10232,17 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } int main () { int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); ; return 0; @@ -9921,48 +10466,7 @@ $as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; } fi - for gl_func in gettimeofday; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if HAVE_SYS_TIME_H -# include -#endif -#include - -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -10003,12 +10507,17 @@ fi REPLACE_LOCALTIME=0; + GNULIB_ICONV=0; ICONV_CONST=; REPLACE_ICONV=0; REPLACE_ICONV_OPEN=0; REPLACE_ICONV_UTF=0; ICONV_H=''; + if false; then + ICONV_H='iconv.h' + fi + if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' @@ -10473,18 +10982,21 @@ $as_echo "$gl_cv_next_limits_h" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5 -$as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc." >&5 +$as_echo_n "checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... " >&6; } if ${gl_cv_header_limits_width+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include - int ullw = ULLONG_WIDTH; + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + int main () { @@ -10521,10 +11033,15 @@ fi GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; - HAVE_DUPLOCALE=1; + GNULIB_LOCALENAME=0; + HAVE_NEWLOCALE=1; + HAVE_DUPLOCALE=1; + HAVE_FREELOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; + REPLACE_NEWLOCALE=0; REPLACE_DUPLOCALE=0; + REPLACE_FREELOCALE=0; REPLACE_STRUCT_LCONV=0; @@ -10569,19 +11086,49 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h STDDEF_H= - ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include - -" -if test "x$ac_cv_type_max_align_t" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +$as_echo_n "checking for good max_align_t... " >&6; } +if ${gl_cv_type_max_align_t+:} false; then : + $as_echo_n "(cached) " >&6 else - HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_max_align_t=yes +else + gl_cv_type_max_align_t=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 +$as_echo "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : @@ -10614,6 +11161,7 @@ $as_echo "$gl_cv_decl_null_works" >&6; } STDDEF_H=stddef.h fi + if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' @@ -10770,9 +11318,14 @@ struct tm t; char buf[16]; int main () { - const char *p; + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -10780,9 +11333,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -10791,32 +11344,36 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } return 0; +#endif } _ACEOF @@ -10910,9 +11467,14 @@ struct tm t; char buf[16]; int main () { - const char *p; + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -10920,9 +11482,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -10931,32 +11493,36 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; +#endif } _ACEOF @@ -11045,7 +11611,7 @@ int main () { variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -11150,6 +11716,130 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; } + GNULIB_STRFMON_L=0; + HAVE_STRFMON_L=1; + REPLACE_STRFMON_L=0; + + + + + + + + + if false || test $ac_cv_header_monetary_h = yes; then + MONETARY_H='monetary.h' + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_monetary_h='<'monetary.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_monetary_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_monetary_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'monetary.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_monetary_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_monetary_h + gl_cv_next_monetary_h='"'$gl_header'"' + else + gl_cv_next_monetary_h='<'monetary.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_monetary_h" >&5 +$as_echo "$gl_cv_next_monetary_h" >&6; } + fi + NEXT_MONETARY_H=$gl_cv_next_monetary_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'monetary.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_monetary_h + fi + NEXT_AS_FIRST_DIRECTIVE_MONETARY_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_monetary_h = yes; then + HAVE_MONETARY_H=1 + else + HAVE_MONETARY_H=0 + fi + + + + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + else + HAVE_XLOCALE_H=0 + fi + + + + + + else + MONETARY_H='' + fi + + if test -n "$MONETARY_H"; then + GL_GENERATE_MONETARY_H_TRUE= + GL_GENERATE_MONETARY_H_FALSE='#' +else + GL_GENERATE_MONETARY_H_TRUE='#' + GL_GENERATE_MONETARY_H_FALSE= +fi + + + gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11244,8 +11934,8 @@ else char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; @@ -12333,7 +13023,9 @@ _ACEOF ;; esac - LIMITS_H=limits.h + + + LIMITS_H='limits.h' if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' @@ -12347,6 +13039,7 @@ fi + if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' @@ -12523,17 +13216,17 @@ fi REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; - REPLACE_STRDUP=0; - REPLACE_STRSTR=0; - REPLACE_STRCASESTR=0; REPLACE_STRCHRNUL=0; - REPLACE_STRERROR=0; - REPLACE_STRERROR_R=0; + REPLACE_STRDUP=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; - REPLACE_STRSIGNAL=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; REPLACE_STRTOK_R=0; + REPLACE_STRERROR=0; + REPLACE_STRERROR_R=0; + REPLACE_STRSIGNAL=0; UNDEFINE_STRTOK_R=0; @@ -12612,296 +13305,10 @@ $as_echo "$gl_cv_next_string_h" >&6; } - for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done - - - - - - - - # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it - # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is - # irrelevant for anonymous mappings. - ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" -if test "x$ac_cv_func_mmap" = xyes; then : - gl_have_mmap=yes -else - gl_have_mmap=no -fi - - - # Try to allow MAP_ANONYMOUS. - gl_have_mmap_anonymous=no - if test $gl_have_mmap = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 -$as_echo_n "checking for MAP_ANONYMOUS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef MAP_ANONYMOUS - I cannot identify this map -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "I cannot identify this map" >/dev/null 2>&1; then : - gl_have_mmap_anonymous=yes -fi -rm -f conftest* - - if test $gl_have_mmap_anonymous != yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef MAP_ANON - I cannot identify this map -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "I cannot identify this map" >/dev/null 2>&1; then : - -$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h - - gl_have_mmap_anonymous=yes -fi -rm -f conftest* - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 -$as_echo "$gl_have_mmap_anonymous" >&6; } - if test $gl_have_mmap_anonymous = yes; then - -$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h - - fi - fi - - - - - - - if test $HAVE_MEMCHR = 1; then - # Detect platform-specific bugs in some versions of glibc: - # memchr should not dereference anything with length 0 - # http://bugzilla.redhat.com/499689 - # memchr should not dereference overestimated length after a match - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 - # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 - # Assume that memchr works on platforms that lack mprotect. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 -$as_echo_n "checking whether memchr works... " >&6; } -if ${gl_cv_func_memchr_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_memchr_works="guessing yes" ;; - # Be pessimistic for now. - *) gl_cv_func_memchr_works="guessing no" ;; - esac - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#if HAVE_SYS_MMAN_H -# include -# include -# include -# include -# ifndef MAP_FILE -# define MAP_FILE 0 -# endif -#endif - -int -main () -{ - - int result = 0; - char *fence = NULL; -#if HAVE_SYS_MMAN_H && HAVE_MPROTECT -# if HAVE_MAP_ANONYMOUS - const int flags = MAP_ANONYMOUS | MAP_PRIVATE; - const int fd = -1; -# else /* !HAVE_MAP_ANONYMOUS */ - const int flags = MAP_FILE | MAP_PRIVATE; - int fd = open ("/dev/zero", O_RDONLY, 0666); - if (fd >= 0) -# endif - { - int pagesize = getpagesize (); - char *two_pages = - (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, - flags, fd, 0); - if (two_pages != (char *)(-1) - && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) - fence = two_pages + pagesize; - } -#endif - if (fence) - { - if (memchr (fence, 0, 0)) - result |= 1; - strcpy (fence - 9, "12345678"); - if (memchr (fence - 9, 0, 79) != fence - 1) - result |= 2; - if (memchr (fence - 1, 0, 3) != fence - 1) - result |= 4; - } - return result; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_func_memchr_works=yes -else - gl_cv_func_memchr_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 -$as_echo "$gl_cv_func_memchr_works" >&6; } - case "$gl_cv_func_memchr_works" in - *yes) ;; - *) REPLACE_MEMCHR=1 ;; - esac - fi - - - - - if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then - REPLACE_STRSTR=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 -$as_echo_n "checking whether strstr works... " >&6; } -if ${gl_cv_func_strstr_works_always+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef __GNU_LIBRARY__ - #include - #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ - || defined __UCLIBC__ - Lucky user - #endif -#elif defined __CYGWIN__ - #include - #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) - Lucky user - #endif -#else - Lucky user -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1; then : - gl_cv_func_strstr_works_always="guessing yes" -else - gl_cv_func_strstr_works_always="guessing no" -fi -rm -f conftest* - - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include /* for strstr */ -#define P "_EF_BF_BD" -#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P -#define NEEDLE P P P P P - -int -main () -{ -return !!strstr (HAYSTACK, NEEDLE); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_func_strstr_works_always=yes -else - gl_cv_func_strstr_works_always=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5 -$as_echo "$gl_cv_func_strstr_works_always" >&6; } - case "$gl_cv_func_strstr_works_always" in - *yes) ;; - *) - REPLACE_STRSTR=1 - ;; - esac - fi - - GNULIB_FCHMODAT=0; GNULIB_FSTAT=0; GNULIB_FSTATAT=0; @@ -13385,202 +13792,330 @@ q - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 -$as_echo_n "checking for working fcntl.h... " >&6; } -if ${gl_cv_header_working_fcntl_h+:} false; then : + gl_threads_api=none + LIBTHREAD= + LTLIBTHREAD= + LIBMULTITHREAD= + LTLIBMULTITHREAD= + if test "$gl_use_threads" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } +if ${gl_cv_have_weak+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - case "$host_os" in - # Guess 'no' on native Windows. - mingw*) gl_cv_header_working_fcntl_h='no' ;; - *) gl_cv_header_working_fcntl_h=cross-compiling ;; - esac - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #include - #if HAVE_UNISTD_H - # include - #else /* on Windows with MSVC */ - # include - # include - # defined sleep(n) _sleep ((n) * 1000) - #endif - #include - #ifndef O_NOATIME - #define O_NOATIME 0 - #endif - #ifndef O_NOFOLLOW - #define O_NOFOLLOW 0 - #endif - static int const constants[] = - { - O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, - O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY - }; - +extern void xyzzy (); +#pragma weak xyzzy int main () { - - int result = !constants; - #if HAVE_SYMLINK - { - static char const sym[] = "conftest.sym"; - if (symlink ("/dev/null", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - if (unlink (sym) != 0 || symlink (".", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_RDONLY | O_NOFOLLOW); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - unlink (sym); - } - #endif - { - static char const file[] = "confdefs.h"; - int fd = open (file, O_RDONLY | O_NOATIME); - if (fd < 0) - result |= 8; - else - { - struct stat st0; - if (fstat (fd, &st0) != 0) - result |= 16; - else - { - char c; - sleep (1); - if (read (fd, &c, 1) != 1) - result |= 24; - else - { - if (close (fd) != 0) - result |= 32; - else - { - struct stat st1; - if (stat (file, &st1) != 0) - result |= 40; - else - if (st0.st_atime != st1.st_atime) - result |= 64; - } - } - } - } - } - return result; +xyzzy(); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_header_working_fcntl_h=yes +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : + gl_cv_have_weak="guessing yes" else - case $? in #( - 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( - 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( - 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( - *) gl_cv_header_working_fcntl_h='no';; - esac + gl_cv_have_weak="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_have_weak=yes +else + gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 -$as_echo "$gl_cv_header_working_fcntl_h" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +$as_echo "$gl_cv_have_weak" >&6; } + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then - case $gl_cv_header_working_fcntl_h in #( - *O_NOATIME* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -cat >>confdefs.h <<_ACEOF -#define HAVE_WORKING_O_NOATIME $ac_val -_ACEOF - - - case $gl_cv_header_working_fcntl_h in #( - *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -cat >>confdefs.h <<_ACEOF -#define HAVE_WORKING_O_NOFOLLOW $ac_val -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" -if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : - ac_have_decl=1 + : + fi + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + gl_have_pthread_h=yes else - ac_have_decl=0 + gl_have_pthread_h=no fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + gl_have_pthread= + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main () +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_have_pthread=yes + LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread + LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test -n "$gl_have_pthread" && break + done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 -$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } -if ${ac_cv_gnu_library_2_1+:} false; then : + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" #endif -#ifdef __UCLIBC__ - Lucky user -#endif - +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky" >/dev/null 2>&1; then : - ac_cv_gnu_library_2_1=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes else - ac_cv_gnu_library_2_1=no + ac_cv_lib_pthread_pthread_kill=no fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) +$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - GLIBC21="$ac_cv_gnu_library_2_1" + elif test -z "$gl_have_pthread"; then + # Some library is needed. Try libpthread and libc_r. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + gl_have_pthread=yes + LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread +fi + + if test -z "$gl_have_pthread"; then + # For FreeBSD 4. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +$as_echo_n "checking for pthread_kill in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_kill=yes +else + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : + gl_have_pthread=yes + LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r + LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r +fi + + fi + fi + if test -n "$gl_have_pthread"; then + gl_threads_api=posix + +$as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h + + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + +$as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h + + LIBTHREAD= + LTLIBTHREAD= + fi + fi + fi + fi + fi + if test -z "$gl_have_pthread"; then + case "$gl_use_threads" in + yes | windows | win32) # The 'win32' is for backward compatibility. + if { case "$host_os" in + mingw*) true;; + *) false;; + esac + }; then + gl_threads_api=windows + +$as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h + + fi + ;; + esac + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 +$as_echo_n "checking for multithread API to use... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 +$as_echo "$gl_threads_api" >&6; } + + + + + + + @@ -13612,6 +14147,7 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; } GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; + GNULIB_STRTOLD=0; GNULIB_STRTOLL=0; GNULIB_STRTOULL=0; GNULIB_SYSTEM_POSIX=0; @@ -13624,7 +14160,9 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; } HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; + HAVE_INITSTATE=1; HAVE_DECL_INITSTATE=1; + HAVE_MBTOWC=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; @@ -13643,8 +14181,10 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; } HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; + HAVE_SETSTATE=1; HAVE_DECL_SETSTATE=1; HAVE_STRTOD=1; + HAVE_STRTOLD=1; HAVE_STRTOLL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; @@ -13653,6 +14193,7 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; } HAVE_DECL_UNSETENV=1; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_INITSTATE=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; @@ -13660,15 +14201,201 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; } REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_QSORT_R=0; + REPLACE_RANDOM=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; + REPLACE_SETSTATE=0; REPLACE_STRTOD=0; + REPLACE_STRTOLD=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; + + + + + + + + + # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it + # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is + # irrelevant for anonymous mappings. + ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = xyes; then : + gl_have_mmap=yes +else + gl_have_mmap=no +fi + + + # Try to allow MAP_ANONYMOUS. + gl_have_mmap_anonymous=no + if test $gl_have_mmap = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 +$as_echo_n "checking for MAP_ANONYMOUS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANONYMOUS + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1; then : + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + if test $gl_have_mmap_anonymous != yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANON + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1; then : + +$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h + + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 +$as_echo "$gl_have_mmap_anonymous" >&6; } + if test $gl_have_mmap_anonymous = yes; then + +$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h + + fi + fi + + + + + + + if test $HAVE_MEMCHR = 1; then + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # https://bugzilla.redhat.com/show_bug.cgi?id=499689 + # memchr should not dereference overestimated length after a match + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # memchr should cast the second argument to 'unsigned char'. + # This bug exists in Android 4.3. + # Assume that memchr works on platforms that lack mprotect. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 +$as_echo_n "checking whether memchr works... " >&6; } +if ${gl_cv_func_memchr_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_memchr_works="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_memchr_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SYS_MMAN_H +# include +# include +# include +# include +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +#endif + +int +main () +{ + + int result = 0; + char *fence = NULL; +#if HAVE_SYS_MMAN_H && HAVE_MPROTECT +# if HAVE_MAP_ANONYMOUS + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + const int fd = -1; +# else /* !HAVE_MAP_ANONYMOUS */ + const int flags = MAP_FILE | MAP_PRIVATE; + int fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd >= 0) +# endif + { + int pagesize = getpagesize (); + char *two_pages = + (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, + flags, fd, 0); + if (two_pages != (char *)(-1) + && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) + fence = two_pages + pagesize; + } +#endif + if (fence) + { + if (memchr (fence, 0, 0)) + result |= 1; + strcpy (fence - 9, "12345678"); + if (memchr (fence - 9, 0, 79) != fence - 1) + result |= 2; + if (memchr (fence - 1, 0, 3) != fence - 1) + result |= 4; + } + /* Test against bug on Android 4.3. */ + { + char input[3]; + input[0] = 'a'; + input[1] = 'b'; + input[2] = 'c'; + if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) + result |= 8; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_memchr_works=yes +else + gl_cv_func_memchr_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 +$as_echo "$gl_cv_func_memchr_works" >&6; } + case "$gl_cv_func_memchr_works" in + *yes) ;; + *) REPLACE_MEMCHR=1 ;; + esac + fi + + if false; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' @@ -13957,12 +14684,14 @@ else if test "$cross_compiling" = yes; then : # When cross-compiling: case "$host_os" in - # Guess all is fine on glibc systems. - *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess all is fine on musl systems. + *-musl*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_gettimeofday_clobber="$gl_cross_guess_inverted" ;; esac else @@ -14217,6 +14946,10 @@ $as_echo "$gl_cv_next_iconv_h" >&6; } + + + + if test "$am_cv_func_iconv" = yes; then @@ -14548,48 +15281,7 @@ $as_echo "$gl_cv_next_locale_h" >&6; } - for gl_func in setlocale duplocale; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -/* Some systems provide declarations in a non-standard header. */ -#if HAVE_XLOCALE_H -# include -#endif -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -15129,12 +15821,11 @@ if ${gl_cv_func_mbrtowc_empty_input+:} false; then : else case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu*) - gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : @@ -15172,7 +15863,7 @@ if ${gl_cv_C_locale_sans_EILSEQ+:} false; then : $as_echo_n "(cached) " >&6 else - gl_cv_C_locale_sans_EILSEQ="guessing no" + gl_cv_C_locale_sans_EILSEQ="$gl_cross_guess_normal" if test "$cross_compiling" = yes; then : case "$host_os" in @@ -15287,6 +15978,7 @@ $as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" + : fi @@ -15653,6 +16345,7 @@ $as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : @@ -15716,19 +16409,49 @@ fi STDDEF_H= - ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include - -" -if test "x$ac_cv_type_max_align_t" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +$as_echo_n "checking for good max_align_t... " >&6; } +if ${gl_cv_type_max_align_t+:} false; then : + $as_echo_n "(cached) " >&6 else - HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_max_align_t=yes +else + gl_cv_type_max_align_t=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 +$as_echo "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : @@ -15761,6 +16484,7 @@ $as_echo "$gl_cv_decl_null_works" >&6; } STDDEF_H=stddef.h fi + if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' @@ -15935,7 +16659,7 @@ else /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif @@ -16000,44 +16724,7 @@ _ACEOF - for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done if test $gl_cond_libtool = false; then @@ -16049,231 +16736,6 @@ fi - if test $REPLACE_STRSTR = 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works in linear time" >&5 -$as_echo_n "checking whether strstr works in linear time... " >&6; } -if ${gl_cv_func_strstr_linear+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ - && !(defined __i386__ || defined __x86_64__) \ - && !defined __UCLIBC__ - Lucky user - #endif -#endif -#ifdef __CYGWIN__ - #include - #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) - Lucky user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1; then : - gl_cv_func_strstr_linear="guessing yes" -else - gl_cv_func_strstr_linear="guessing no" -fi -rm -f conftest* - - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef __MVS__ -/* z/OS does not deliver signals while strstr() is running (thanks to - restrictions on its LE runtime), which prevents us from limiting the - running time of this test. */ -# error "This test does not work properly on z/OS" -#endif -#include /* for signal */ -#include /* for strstr */ -#include /* for malloc */ -#include /* for alarm */ -static void quit (int sig) { _exit (sig + 128); } - -int -main () -{ - - int result = 0; - size_t m = 1000000; - char *haystack = (char *) malloc (2 * m + 2); - char *needle = (char *) malloc (m + 2); - /* Failure to compile this test due to missing alarm is okay, - since all such platforms (mingw) also have quadratic strstr. */ - signal (SIGALRM, quit); - alarm (5); - /* Check for quadratic performance. */ - if (haystack && needle) - { - memset (haystack, 'A', 2 * m); - haystack[2 * m] = 'B'; - haystack[2 * m + 1] = 0; - memset (needle, 'A', m); - needle[m] = 'B'; - needle[m + 1] = 0; - if (!strstr (haystack, needle)) - result |= 1; - } - /* Free allocated memory, in case some sanitizer is watching. */ - free (haystack); - free (needle); - return result; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_func_strstr_linear=yes -else - gl_cv_func_strstr_linear=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_linear" >&5 -$as_echo "$gl_cv_func_strstr_linear" >&6; } - case "$gl_cv_func_strstr_linear" in - *yes) ;; - *) - REPLACE_STRSTR=1 - ;; - esac - fi - - if test $REPLACE_STRSTR = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext" - - fi - - - - if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then - REPLACE_STRSTR=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 -$as_echo_n "checking whether strstr works... " >&6; } -if ${gl_cv_func_strstr_works_always+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef __GNU_LIBRARY__ - #include - #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ - || defined __UCLIBC__ - Lucky user - #endif -#elif defined __CYGWIN__ - #include - #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) - Lucky user - #endif -#else - Lucky user -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1; then : - gl_cv_func_strstr_works_always="guessing yes" -else - gl_cv_func_strstr_works_always="guessing no" -fi -rm -f conftest* - - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include /* for strstr */ -#define P "_EF_BF_BD" -#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P -#define NEEDLE P P P P P - -int -main () -{ -return !!strstr (HAYSTACK, NEEDLE); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_func_strstr_works_always=yes -else - gl_cv_func_strstr_works_always=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5 -$as_echo "$gl_cv_func_strstr_works_always" >&6; } - case "$gl_cv_func_strstr_works_always" in - *yes) ;; - *) - REPLACE_STRSTR=1 - ;; - esac - fi - - if test $REPLACE_STRSTR = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext" - - fi - - - - - - GNULIB_STRSTR=1 - - - - - -$as_echo "#define GNULIB_TEST_STRSTR 1" >>confdefs.h - - - - - @@ -16381,44 +16843,7 @@ fi - for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -16524,56 +16949,7 @@ $as_echo "$gl_cv_next_unistd_h" >&6; } - for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat truncate ttyname_r unlink unlinkat usleep; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if HAVE_UNISTD_H -# include -#endif -/* Some systems declare various items in the wrong headers. */ -#if !(defined __GLIBC__ && !defined __UCLIBC__) -# include -# include -# include -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -# include -# endif -#endif - -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -16803,54 +17179,7 @@ $as_echo "$gl_cv_next_wchar_h" >&6; } - for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime ; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be - included before . */ -#if !(defined __GLIBC__ && !defined __UCLIBC__) -# include -# include -# include -#endif -#include - -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -17038,13 +17367,70 @@ _ACEOF else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 - else + fi + if test $REPLACE_WCRTOMB = 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb works in the C locale" >&5 +$as_echo_n "checking whether wcrtomb works in the C locale... " >&6; } +if ${gl_cv_func_wcrtomb_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_works="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +int main () +{ + mbstate_t state; + char out[64]; + int count; + memset (&state, 0, sizeof (state)); + out[0] = 'x'; + count = wcrtomb (out, L'a', &state); + return !(count == 1 && out[0] == 'a'); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_wcrtomb_works=yes +else + gl_cv_func_wcrtomb_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5 +$as_echo "$gl_cv_func_wcrtomb_works" >&6; } + case "$gl_cv_func_wcrtomb_works" in + *yes) ;; + *) REPLACE_WCRTOMB=1 ;; + esac + fi + if test $REPLACE_WCRTOMB = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; } if ${gl_cv_func_wcrtomb_retval+:} false; then : $as_echo_n "(cached) " >&6 @@ -17265,6 +17651,7 @@ else /* end confdefs.h. */ #include +#include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . @@ -17676,62 +18063,13 @@ $as_echo "$gl_cv_type_wctrans_t" >&6; } fi - for gl_func in wctype iswctype wctrans towctrans ; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be - included before . */ -#if !(defined __GLIBC__ && !defined __UCLIBC__) -# include -# include -# include -# include -#endif -#include - -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done - gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547=false - gl_gnulib_enabled_configmake=false + gl_gnulib_enabled_30838f5439487421042f2225bed3af76=false gl_gnulib_enabled_localcharset=false gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9=false + gl_gnulib_enabled_lock=false gl_gnulib_enabled_mbsinit=false gl_gnulib_enabled_mbtowc=false gl_gnulib_enabled_memchr=false @@ -17739,120 +18077,17 @@ fi gl_gnulib_enabled_stdlib=false gl_gnulib_enabled_streq=false gl_gnulib_enabled_strnlen1=false + gl_gnulib_enabled_threadlib=false gl_gnulib_enabled_verify=false gl_gnulib_enabled_wctomb=false + gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=false + gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=false + gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=false + gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=false gl_gnulib_enabled_wmemcpy=false - func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547 () - { - if ! $gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 -$as_echo_n "checking for __builtin_expect... " >&6; } -if ${gl_cv___builtin_expect+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv___builtin_expect=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv___builtin_expect="in " -else - gl_cv___builtin_expect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 -$as_echo "$gl_cv___builtin_expect" >&6; } - if test "$gl_cv___builtin_expect" = yes; then - $as_echo "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h - - elif test "$gl_cv___builtin_expect" = "in "; then - $as_echo "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h - - fi - - - gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547=true - fi - } - func_gl_gnulib_m4code_configmake () - { - if ! $gl_gnulib_enabled_configmake; then - - if test "x$datarootdir" = x; then - datarootdir='${datadir}' - - fi - if test "x$docdir" = x; then - docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' - - fi - if test "x$htmldir" = x; then - htmldir='${docdir}' - - fi - if test "x$dvidir" = x; then - dvidir='${docdir}' - - fi - if test "x$pdfdir" = x; then - pdfdir='${docdir}' - - fi - if test "x$psdir" = x; then - psdir='${docdir}' - - fi - if test "x$lispdir" = x; then - lispdir='${datarootdir}/emacs/site-lisp' - - fi - if test "x$localedir" = x; then - localedir='${datarootdir}/locale' - - fi - if test "x$runstatedir" = x; then - runstatedir='${localstatedir}/run' - - fi - - pkglibexecdir='${libexecdir}/${PACKAGE}' - - - gl_gnulib_enabled_configmake=true - fi - } func_gl_gnulib_m4code_30838f5439487421042f2225bed3af76 () { if ! $gl_gnulib_enabled_30838f5439487421042f2225bed3af76; then - - : - gl_gnulib_enabled_30838f5439487421042f2225bed3af76=true fi } @@ -17862,15 +18097,9 @@ $as_echo "$gl_cv___builtin_expect" >&6; } - - - - - - LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" + LOCALCHARSET_TESTS_ENVIRONMENT= gl_gnulib_enabled_localcharset=true - func_gl_gnulib_m4code_configmake fi } func_gl_gnulib_m4code_2049e887c7e5308faad27b3f894bb8c9 () @@ -17890,6 +18119,248 @@ $as_echo "$gl_cv___builtin_expect" >&6; } gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9=true fi } + func_gl_gnulib_m4code_lock () + { + if ! $gl_gnulib_enabled_lock; then + + + if test "$gl_threads_api" = posix; then + # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the + # pthread_rwlock_* functions. + has_rwlock=false + ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include +" +if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : + has_rwlock=true + +$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h + +fi + + if $has_rwlock; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 +$as_echo_n "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } +if ${gl_cv_pthread_rwlock_rdlock_prefer_writer+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on musl systems. + *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on bionic systems. + *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess yes on native Windows with the mingw-w64 winpthreads library. + # Guess no on native Windows with the gnulib windows-rwlock module. + mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" + else + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" + fi + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include + +#define SUCCEED() exit (0) +#define FAILURE() exit (1) +#define UNEXPECTED(n) (exit (10 + (n))) + +/* The main thread creates the waiting writer and the requesting reader threads + in the default way; this guarantees that they have the same priority. + We can reuse the main thread as first reader thread. */ + +static pthread_rwlock_t lock; +static pthread_t reader1; +static pthread_t writer; +static pthread_t reader2; +static pthread_t timer; +/* Used to pass control from writer to reader2 and from reader2 to timer, + as in a relay race. + Passing control from one running thread to another running thread + is most likely faster than to create the second thread. */ +static pthread_mutex_t baton; + +static void * +timer_func (void *ignored) +{ + /* Step 13 (can be before or after step 12): + The timer thread takes the baton, then waits a moment to make sure + it can tell whether the second reader thread is blocked at step 12. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (13); + usleep (100000); + /* By the time we get here, it's clear that the second reader thread is + blocked at step 12. This is the desired behaviour. */ + SUCCEED (); +} + +static void * +reader2_func (void *ignored) +{ + int err; + + /* Step 8 (can be before or after step 7): + The second reader thread takes the baton, then waits a moment to make sure + the writer thread has reached step 7. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (8); + usleep (100000); + /* Step 9: The second reader thread requests the lock. */ + err = pthread_rwlock_tryrdlock (&lock); + if (err == 0) + FAILURE (); + else if (err != EBUSY) + UNEXPECTED (9); + /* Step 10: Launch a timer, to test whether the next call blocks. */ + if (pthread_create (&timer, NULL, timer_func, NULL)) + UNEXPECTED (10); + /* Step 11: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (11); + /* Step 12: The second reader thread requests the lock. */ + err = pthread_rwlock_rdlock (&lock); + if (err == 0) + FAILURE (); + else + UNEXPECTED (12); +} + +static void * +writer_func (void *ignored) +{ + /* Step 4: Take the baton, so that the second reader thread does not go ahead + too early. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (4); + /* Step 5: Create the second reader thread. */ + if (pthread_create (&reader2, NULL, reader2_func, NULL)) + UNEXPECTED (5); + /* Step 6: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (6); + /* Step 7: The writer thread requests the lock. */ + if (pthread_rwlock_wrlock (&lock)) + UNEXPECTED (7); + return NULL; +} + +int +main () +{ + reader1 = pthread_self (); + + /* Step 1: The main thread initializes the lock and the baton. */ + if (pthread_rwlock_init (&lock, NULL)) + UNEXPECTED (1); + if (pthread_mutex_init (&baton, NULL)) + UNEXPECTED (1); + /* Step 2: The main thread acquires the lock as a reader. */ + if (pthread_rwlock_rdlock (&lock)) + UNEXPECTED (2); + /* Step 3: Create the writer thread. */ + if (pthread_create (&writer, NULL, writer_func, NULL)) + UNEXPECTED (3); + /* Job done. Go to sleep. */ + for (;;) + { + sleep (1); + } +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_pthread_rwlock_rdlock_prefer_writer=yes +else + gl_cv_pthread_rwlock_rdlock_prefer_writer=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 +$as_echo "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } + case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in + *yes) + +$as_echo "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h + + ;; + esac + + fi + # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include +int +main () +{ + +#if __FreeBSD__ == 4 +error "No, in FreeBSD 4.0 recursive mutexes actually don't work." +#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ + && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) +error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." +#else +int x = (int)PTHREAD_MUTEX_RECURSIVE; +return !x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + : + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_LOCK 1 +_ACEOF + + + gl_gnulib_enabled_lock=true + func_gl_gnulib_m4code_threadlib + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef + fi + fi + } func_gl_gnulib_m4code_mbsinit () { if ! $gl_gnulib_enabled_mbsinit; then @@ -18128,11 +18599,26 @@ $as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h - if false; then - REPLACE_MBTOWC=1 + for ac_func in mbtowc +do : + ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc" +if test "x$ac_cv_func_mbtowc" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MBTOWC 1 +_ACEOF + +fi +done + + if test $ac_cv_func_mbtowc = no; then + HAVE_MBTOWC=0 + else + if false; then + REPLACE_MBTOWC=1 + fi fi - if test $REPLACE_MBTOWC = 1; then + if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then @@ -18298,50 +18784,7 @@ $as_echo "$gl_cv_next_stdlib_h" >&6; } - for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 -$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } -if eval \${$as_gl_Symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if HAVE_SYS_LOADAVG_H -# include -#endif -#if HAVE_RANDOM_H -# include -#endif -int -main () -{ -#undef $gl_func - (void) $gl_func; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" -else - eval "$as_gl_Symbol=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 -_ACEOF - - eval ac_cv_have_decl_$gl_func=yes -fi - done gl_gnulib_enabled_stdlib=true @@ -18361,6 +18804,13 @@ fi func_gl_gnulib_m4code_memchr fi } + func_gl_gnulib_m4code_threadlib () + { + if ! $gl_gnulib_enabled_threadlib; then + + gl_gnulib_enabled_threadlib=true + fi + } func_gl_gnulib_m4code_verify () { if ! $gl_gnulib_enabled_verify; then @@ -18411,6 +18861,90 @@ $as_echo "#define GNULIB_TEST_WCTOMB 1" >>confdefs.h func_gl_gnulib_m4code_stdlib fi } + func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 () + { + if ! $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS windows-mutex.$ac_objext" + + ;; + esac + gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=true + fi + } + func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab () + { + if ! $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS windows-once.$ac_objext" + + ;; + esac + gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=true + fi + } + func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 () + { + if ! $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS windows-recmutex.$ac_objext" + + ;; + esac + gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=true + fi + } + func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef () + { + if ! $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS windows-rwlock.$ac_objext" + + ;; + esac + gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=true + fi + } func_gl_gnulib_m4code_wmemcpy () { if ! $gl_gnulib_enabled_wmemcpy; then @@ -18498,6 +19032,9 @@ $as_echo "#define GNULIB_TEST_WMEMCPY 1" >>confdefs.h if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then func_gl_gnulib_m4code_localcharset fi + if test $HAVE_MBRTOWC = 0 || { test $REPLACE_MBRTOWC = 1 && { test $HAVE_MBSINIT = 0 || test $REPLACE_MBSTATE_T = 1; }; }; then + func_gl_gnulib_m4code_lock + fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then func_gl_gnulib_m4code_mbsinit fi @@ -18510,12 +19047,6 @@ $as_echo "#define GNULIB_TEST_WMEMCPY 1" >>confdefs.h if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then func_gl_gnulib_m4code_strnlen1 fi - if test $REPLACE_STRSTR = 1; then - func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547 - fi - if test $REPLACE_STRSTR = 1; then - func_gl_gnulib_m4code_memchr - fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then func_gl_gnulib_m4code_mbsinit fi @@ -18526,22 +19057,6 @@ $as_echo "#define GNULIB_TEST_WMEMCPY 1" >>confdefs.h func_gl_gnulib_m4code_wctomb fi - if $gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547; then - gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_TRUE= - gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_FALSE='#' -else - gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_TRUE='#' - gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_FALSE= -fi - - if $gl_gnulib_enabled_configmake; then - gl_GNULIB_ENABLED_configmake_TRUE= - gl_GNULIB_ENABLED_configmake_FALSE='#' -else - gl_GNULIB_ENABLED_configmake_TRUE='#' - gl_GNULIB_ENABLED_configmake_FALSE= -fi - if $gl_gnulib_enabled_30838f5439487421042f2225bed3af76; then gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE= gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_FALSE='#' @@ -18566,6 +19081,14 @@ else gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9_FALSE= fi + if $gl_gnulib_enabled_lock; then + gl_GNULIB_ENABLED_lock_TRUE= + gl_GNULIB_ENABLED_lock_FALSE='#' +else + gl_GNULIB_ENABLED_lock_TRUE='#' + gl_GNULIB_ENABLED_lock_FALSE= +fi + if $gl_gnulib_enabled_mbsinit; then gl_GNULIB_ENABLED_mbsinit_TRUE= gl_GNULIB_ENABLED_mbsinit_FALSE='#' @@ -18622,6 +19145,14 @@ else gl_GNULIB_ENABLED_strnlen1_FALSE= fi + if $gl_gnulib_enabled_threadlib; then + gl_GNULIB_ENABLED_threadlib_TRUE= + gl_GNULIB_ENABLED_threadlib_FALSE='#' +else + gl_GNULIB_ENABLED_threadlib_TRUE='#' + gl_GNULIB_ENABLED_threadlib_FALSE= +fi + if $gl_gnulib_enabled_verify; then gl_GNULIB_ENABLED_verify_TRUE= gl_GNULIB_ENABLED_verify_FALSE='#' @@ -18638,6 +19169,38 @@ else gl_GNULIB_ENABLED_wctomb_FALSE= fi + if $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then + gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE= + gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE='#' +else + gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE='#' + gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE= +fi + + if $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then + gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE= + gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE='#' +else + gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE='#' + gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE= +fi + + if $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then + gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE= + gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE='#' +else + gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE='#' + gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE= +fi + + if $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then + gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE= + gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE='#' +else + gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE='#' + gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE= +fi + if $gl_gnulib_enabled_wmemcpy; then gl_GNULIB_ENABLED_wmemcpy_TRUE= gl_GNULIB_ENABLED_wmemcpy_FALSE='#' @@ -18687,6 +19250,85 @@ fi +if test "x$ac_cv_header_monetary_h" != xyes; then : + + as_fn_error $? "requires to exist in the C library" "$LINENO" 5 + +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking the latest supported version of _XOPEN_SOURCE" >&5 +$as_echo_n "checking the latest supported version of _XOPEN_SOURCE... " >&6; } +if ${x_cv_latest_xopen_source+:} false; then : + $as_echo_n "(cached) " >&6 +else + + x_cv_latest_xopen_source=unknown + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Test for SUSv4 / XPG7 */ + #define _XOPEN_SOURCE 700 + #include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + x_cv_latest_xopen_source=700 + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Test for SUSv3 / XPG6 */ + #define _XOPEN_SOURCE 600 + #include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + x_cv_latest_xopen_source=600 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $x_cv_latest_xopen_source" >&5 +$as_echo "$x_cv_latest_xopen_source" >&6; } + if test "x$x_cv_latest_xopen_source" != xunknown; then : + +cat >>confdefs.h <<_ACEOF +#define LATEST_XOPEN_SOURCE $x_cv_latest_xopen_source +_ACEOF + + +fi + +if test "x$x_cv_latest_xopen_source" = xunknown; then : + + as_fn_error $? "requires X/Open SUSv4/XPG7 or SUSv3/XPG6" "$LINENO" 5 + +fi + @@ -19852,7 +20494,9 @@ if test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes; then : as_fn_error $? "requires an X/Open-compatible Curses library with colour" "$LINENO" 5 fi -if test "x$ax_cv_curses_enhanced" != xyes; then : +if test "x$ax_cv_curses_enhanced" = xyes; then : + +elif test "x$USE_NLS" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no X/Open-compatible Enhanced Curses library found @@ -20038,6 +20682,10 @@ if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FAL as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${GL_GENERATE_MONETARY_H_TRUE}" && test -z "${GL_GENERATE_MONETARY_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_MONETARY_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20062,14 +20710,6 @@ if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNIS as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_TRUE}" && test -z "${gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547_FALSE}"; then - as_fn_error $? "conditional \"gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${gl_GNULIB_ENABLED_configmake_TRUE}" && test -z "${gl_GNULIB_ENABLED_configmake_FALSE}"; then - as_fn_error $? "conditional \"gl_GNULIB_ENABLED_configmake\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE}" && test -z "${gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_FALSE}"; then as_fn_error $? "conditional \"gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20082,6 +20722,10 @@ if test -z "${gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9_TRUE}" && test as_fn_error $? "conditional \"gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_lock_TRUE}" && test -z "${gl_GNULIB_ENABLED_lock_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_lock\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_mbsinit_TRUE}" && test -z "${gl_GNULIB_ENABLED_mbsinit_FALSE}"; then as_fn_error $? "conditional \"gl_GNULIB_ENABLED_mbsinit\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20110,6 +20754,10 @@ if test -z "${gl_GNULIB_ENABLED_strnlen1_TRUE}" && test -z "${gl_GNULIB_ENABLED_ as_fn_error $? "conditional \"gl_GNULIB_ENABLED_strnlen1\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_threadlib_TRUE}" && test -z "${gl_GNULIB_ENABLED_threadlib_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_threadlib\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_verify_TRUE}" && test -z "${gl_GNULIB_ENABLED_verify_FALSE}"; then as_fn_error $? "conditional \"gl_GNULIB_ENABLED_verify\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20118,6 +20766,22 @@ if test -z "${gl_GNULIB_ENABLED_wctomb_TRUE}" && test -z "${gl_GNULIB_ENABLED_wc as_fn_error $? "conditional \"gl_GNULIB_ENABLED_wctomb\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE}" && test -z "${gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE}" && test -z "${gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE}" && test -z "${gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE}" && test -z "${gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE}"; then + as_fn_error $? "conditional \"gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_wmemcpy_TRUE}" && test -z "${gl_GNULIB_ENABLED_wmemcpy_FALSE}"; then as_fn_error $? "conditional \"gl_GNULIB_ENABLED_wmemcpy\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20551,7 +21215,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Star Traders $as_me 7.12, which was +This file was extended by Star Traders $as_me 7.13, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20612,13 +21276,13 @@ Configuration commands: $config_commands Report bugs to . -Star Traders home page: ." +Star Traders home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Star Traders config.status 7.12 +Star Traders config.status 7.13 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -20737,7 +21401,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. @@ -21363,29 +22027,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -21403,53 +22073,48 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)[^/].*/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "po-directories":C) @@ -21604,3 +22269,24 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: + + Configuration summary for Star Traders 7.13: + + Building for host: $host + Using C compiler with options: $CC $CFLAGS + Installation prefix: $prefix + Native Language Support enabled: $USE_NLS + Curses library selected: $ax_cv_curses_which +" >&5 +$as_echo "$as_me: + + Configuration summary for Star Traders 7.13: + + Building for host: $host + Using C compiler with options: $CC $CFLAGS + Installation prefix: $prefix + Native Language Support enabled: $USE_NLS + Curses library selected: $ax_cv_curses_which +" >&6;} diff --git a/configure.ac b/configure.ac index d0c1f73..4535eeb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl ********************************************************************* dnl * * dnl * Star Traders: A Game of Interstellar Trading * -dnl * Copyright (C) 1990-2017, John Zaitseff * +dnl * Copyright (C) 1990-2019, John Zaitseff * dnl * * dnl ********************************************************************* dnl @@ -23,11 +23,11 @@ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License -dnl along with this program. If not, see http://www.gnu.org/licenses/. +dnl along with this program. If not, see https://www.gnu.org/licenses/. -AC_INIT([Star Traders], [7.12], [J.Zaitseff@zap.org.au], [trader], - [http://www.zap.org.au/software/trader/]) +AC_INIT([Star Traders], [7.13], [J.Zaitseff@zap.org.au], [trader], + [https://www.zap.org.au/projects/trader/]) AC_DEFINE([PACKAGE_AUTHOR], ["John Zaitseff"], [Package author]) AC_PREREQ([2.69]) @@ -53,16 +53,26 @@ AX_C___ATTRIBUTE__ AC_TYPE_SIZE_T AC_TYPE_SSIZE_T -AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT([external], [need-ngettext]) AM_GNU_GETTEXT_VERSION([0.19.8]) gl_INIT +AS_IF([test "x$ac_cv_header_monetary_h" != xyes], [ + AC_MSG_ERROR([requires to exist in the C library]) +]) + +USE_LATEST_XOPEN_SOURCE +AS_IF([test "x$x_cv_latest_xopen_source" = xunknown], [ + AC_MSG_ERROR([requires X/Open SUSv4/XPG7 or SUSv3/XPG6]) +]) + AX_WITH_CURSES AS_IF([test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes], [ AC_MSG_ERROR([requires an X/Open-compatible Curses library with colour]) ]) -AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [ +AS_IF([test "x$ax_cv_curses_enhanced" = xyes], [], + [test "x$USE_NLS" = xyes], [ AC_MSG_WARN([no X/Open-compatible Enhanced Curses library found ***************** Locales with multibyte character sequences (such as @@ -84,3 +94,14 @@ AC_CONFIG_FILES([ m4/Makefile ]) AC_OUTPUT + +AC_MSG_NOTICE([ + + Configuration summary for AC_PACKAGE_NAME AC_PACKAGE_VERSION: + + Building for host: $host + Using C compiler with options: $CC $CFLAGS + Installation prefix: $prefix + Native Language Support enabled: $USE_NLS + Curses library selected: $ax_cv_curses_which +]) diff --git a/data/Makefile.am b/data/Makefile.am index 46072f5..cecf7f4 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -24,7 +24,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. dist_desktop_DATA = trader.desktop diff --git a/data/Makefile.in b/data/Makefile.in index bbad90c..423a616 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,12 +17,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: 46072f58b6d28544c7992ebd359e68464e468132 $ +# $Id: cecf7f49addcd789ba2910d3e09eab55d858d9eb $ # # This file, data/Makefile.am, contains the non-code data directory # Makefile for Star Traders. It needs to be processed by automake to @@ -40,7 +40,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. VPATH = @srcdir@ am__is_gnu_make = { \ @@ -101,6 +101,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -119,19 +120,19 @@ subdir = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -140,25 +141,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_desktop_DATA) \ @@ -233,7 +236,6 @@ DATA = $(dist_desktop_DATA) $(dist_icons128_DATA) $(dist_icons16_DATA) \ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -267,9 +269,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -277,6 +279,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -330,6 +333,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -345,6 +349,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -438,6 +443,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -449,6 +455,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -526,6 +533,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -556,6 +564,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -575,6 +584,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -587,10 +597,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -607,6 +619,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -619,7 +632,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -644,6 +659,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -653,10 +669,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -673,7 +691,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -741,8 +758,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -753,10 +772,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -764,6 +786,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -780,6 +803,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -810,6 +834,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -820,6 +845,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -827,6 +853,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -844,11 +871,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -876,6 +905,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -887,6 +917,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -899,6 +930,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -911,6 +943,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -919,6 +952,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -1015,7 +1049,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -1081,8 +1114,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1352,7 +1385,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/data/README b/data/README index 39afa09..6806512 100644 --- a/data/README +++ b/data/README @@ -1,9 +1,8 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, data, contains non-code data related to Star Traders. In -particular, the desktop file and icons are located here. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `data`, contains non-code data related to Star Traders. +In particular, the desktop file and icons are located here. diff --git a/data/trader.desktop b/data/trader.desktop index 7378974..f8bf0f1 100644 --- a/data/trader.desktop +++ b/data/trader.desktop @@ -1,12 +1,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: 6fa6bec365e5b1e17b2eaebf3a9843aa5c451e22 $ +# $Id: f8e3e64b8d5bdf73079c79ae778aba1666f679a6 $ # This file provides a translated desktop entry for Star Traders and # conforms to the Desktop Entry Specification v1.1. @@ -62,10 +62,12 @@ Keywords[en_GB]=game;interstellar;trading;strategy; Keywords[en_US]=game;interstellar;trading;strategy; Keywords[da]=spil;interstellar;handel;strategi; Keywords[de]=spiel;universum;galaxie;handel;strategie; +Keywords[eo]=ludo;kosmo;negoco;strategio; Keywords[fr]=jeu;interstellaire;commerce;stratégie; Keywords[hu]=játék;csillagközi;kereskedés;stratégia; Keywords[nb]=spill;interstellar;handel;strategi; Keywords[ru]=игра;межзвёздная;торговля;стратегия; +Keywords[sr]=игра;међузвездано;трговање;стратегиј; Keywords[sv]=spel;interstellär;handel;strategi; Keywords=game;interstellar;trading;strategy; # TRANSLATORS: This string is the name of the icon to use. The Desktop diff --git a/data/trader.desktop.in b/data/trader.desktop.in index 6fa6bec..f8e3e64 100644 --- a/data/trader.desktop.in +++ b/data/trader.desktop.in @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### diff --git a/data/trader.svg b/data/trader.svg index 5ef8568..d37cf54 100644 --- a/data/trader.svg +++ b/data/trader.svg @@ -11,7 +11,7 @@ ************************************************************************* * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************* @@ -32,7 +32,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along -with this program. If not, see http://www.gnu.org/licenses/. +with this program. If not, see https://www.gnu.org/licenses/. --> Star Traders icon diff --git a/doc/Makefile.am b/doc/Makefile.am index d327088..fc8c051 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -24,7 +24,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. dist_man6_MANS = trader.6 EXTRA_DIST = README diff --git a/doc/Makefile.in b/doc/Makefile.in index 250052b..818adb1 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,12 +17,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: d327088affc02929d70a6b728e1255b51ce74f3f $ +# $Id: fc8c0510914a0abae12ab728bc4c352038bb48fd $ # # This file, doc/Makefile.am, contains the documentation directory # Makefile for Star Traders. It needs to be processed by automake to @@ -40,7 +40,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -100,6 +100,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -118,19 +119,19 @@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -139,25 +140,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -218,7 +221,6 @@ MANS = $(dist_man6_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(dist_man6_MANS) $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -252,9 +254,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -262,6 +264,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -315,6 +318,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -330,6 +334,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -423,6 +428,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -434,6 +440,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -511,6 +518,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -541,6 +549,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -560,6 +569,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -572,10 +582,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -592,6 +604,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -604,7 +617,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -629,6 +644,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -638,10 +654,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -658,7 +676,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -726,8 +743,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -738,10 +757,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -749,6 +771,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -765,6 +788,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -795,6 +819,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -805,6 +830,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -812,6 +838,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -829,11 +856,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -861,6 +890,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -872,6 +902,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -884,6 +915,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -896,6 +928,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -904,6 +937,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -1000,7 +1034,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -1041,8 +1074,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1101,7 +1134,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/doc/README b/doc/README index 9d72fc0..c09bd9b 100644 --- a/doc/README +++ b/doc/README @@ -1,9 +1,9 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, doc, contains documentation related to Star Traders. In -particular, the Unix manual page for the game is in the file "trader.6". +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `doc`, contains documentation related to Star Traders. +In particular, the Unix manual page for the game is in the file +`trader.6`. diff --git a/doc/trader.6 b/doc/trader.6 index 06fbb19..d951697 100644 --- a/doc/trader.6 +++ b/doc/trader.6 @@ -1,7 +1,7 @@ .\" ********************************************************************* .\" * * .\" * Star Traders: A Game of Interstellar Trading * -.\" * Copyright (C) 1990-2017, John Zaitseff * +.\" * Copyright (C) 1990-2019, John Zaitseff * .\" * * .\" ********************************************************************* .\" @@ -19,7 +19,7 @@ .\" General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License -.\" along with this program. If not, see http://www.gnu.org/licenses/. +.\" along with this program. If not, see https://www.gnu.org/licenses/. .\" .\" .\" ********************************************************************* @@ -41,7 +41,7 @@ .if \n[.g] .mso www.tmac .\" .\" ********************************************************************* -.TH TRADER 6 "24th August, 2017" "Unix-like systems" +.TH TRADER 6 "13th November, 2019" "Unix-like systems" .SH NAME trader \- a game of interstellar trading .\" ********************************************************************* @@ -199,18 +199,20 @@ Unit 6, 116 Woodburn Road, Berala, NSW, 2141, .br Australia -.IP E-mail: 10n +.IP Email: 10n .MTO J.Zaitseff@zap.org.au .PD 0 .IP Web: 10n -.URL http://www.zap.org.au/software/trader/ +.URL https://www.zap.org.au/projects/trader/ .IP FTP: 10n +.URL https://ftp.zap.org.au/pub/trader/ +.br .FTP ftp://ftp.zap.org.au/pub/trader/ .PD .PP .\" ********************************************************************* .SH COPYRIGHT -Copyright \(co 1990\-2017, John Zaitseff. +Copyright \(co 1990\-2019, John Zaitseff. .PP \fBStar Traders\fR is free software that is distributed under the terms of the GNU General Public License. You can redistribute it and/or modify @@ -224,7 +226,7 @@ Public License for more details. .PP You should have received a copy of the GNU General Public License along with this program. If not, see the -.URL http://www.gnu.org/licenses/ "GNU licenses web page" . +.URL https://www.gnu.org/licenses/ "GNU licenses web page" . .PP Even though the GNU General Public License does \fInot\fR require you to send your modifications back to the author, it is considered \*(lqgood @@ -276,6 +278,6 @@ correct bugs. Now you, too, can run this small piece of computing history! .\" ********************************************************************* .SH "SEE ALSO" -.URL http://www.zap.org.au/software/trader/ "Star Traders home page" +.URL https://www.zap.org.au/projects/trader/ "Star Traders home page" .\" ********************************************************************* .\" End of file diff --git a/lib/.gitignore b/lib/.gitignore index fea09a8..a8adeb2 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -1,20 +1,8 @@ -/charset.alias -/configmake.h -/getopt.h /iconv.h -/iconv_open-aix.h -/iconv_open-hpux.h -/iconv_open-irix.h -/iconv_open-osf.h -/iconv_open-solaris.h /limits.h /locale.h -/ref-add.sed -/ref-del.sed -/stddef.h -/stdint.h +/monetary.h /stdio.h -/stdlib.h /string.h /time.h /unistd.h @@ -24,6 +12,3 @@ /wctype.h /sys/ - -/unistr/ -/unistr/.dirstamp diff --git a/lib/Makefile.am b/lib/Makefile.am index dd29479..5279ab1 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,6 +1,6 @@ ## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -21,9 +21,43 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h crc getopt-gnu gettext-h gettimeofday locale mbrtowc mbsrtowcs stdbool stdio striconv string strstr sys_stat sys_time unistd wchar wcrtomb wcsdup wctob wctype-h +# Reproduce by: +# gnulib-tool --import \ +# --lib=libgnu \ +# --source-base=lib \ +# --m4-base=m4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# assert \ +# btowc \ +# config-h \ +# crc \ +# extensions \ +# getopt-gnu \ +# gettext-h \ +# gettimeofday \ +# locale \ +# mbrtowc \ +# mbsrtowcs \ +# monetary \ +# stdbool \ +# stdio \ +# striconv \ +# string \ +# sys_stat \ +# sys_time \ +# unistd \ +# wchar \ +# wcrtomb \ +# wcsdup \ +# wctob \ +# wctype-h -AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects +AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = @@ -79,53 +113,6 @@ libgnu_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase -## begin gnulib module configmake - -if gl_GNULIB_ENABLED_configmake -# Listed in the same order as the GNU makefile conventions, and -# provided by autoconf 2.59c+ or 2.70. -# The Automake-defined pkg* macros are appended, in the order -# listed in the Automake 1.10a+ documentation. -configmake.h: Makefile - $(AM_V_GEN)rm -f $@-t && \ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - echo '#define PREFIX "$(prefix)"'; \ - echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ - echo '#define BINDIR "$(bindir)"'; \ - echo '#define SBINDIR "$(sbindir)"'; \ - echo '#define LIBEXECDIR "$(libexecdir)"'; \ - echo '#define DATAROOTDIR "$(datarootdir)"'; \ - echo '#define DATADIR "$(datadir)"'; \ - echo '#define SYSCONFDIR "$(sysconfdir)"'; \ - echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ - echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ - echo '#define RUNSTATEDIR "$(runstatedir)"'; \ - echo '#define INCLUDEDIR "$(includedir)"'; \ - echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ - echo '#define DOCDIR "$(docdir)"'; \ - echo '#define INFODIR "$(infodir)"'; \ - echo '#define HTMLDIR "$(htmldir)"'; \ - echo '#define DVIDIR "$(dvidir)"'; \ - echo '#define PDFDIR "$(pdfdir)"'; \ - echo '#define PSDIR "$(psdir)"'; \ - echo '#define LIBDIR "$(libdir)"'; \ - echo '#define LISPDIR "$(lispdir)"'; \ - echo '#define LOCALEDIR "$(localedir)"'; \ - echo '#define MANDIR "$(mandir)"'; \ - echo '#define MANEXT "$(manext)"'; \ - echo '#define PKGDATADIR "$(pkgdatadir)"'; \ - echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ - echo '#define PKGLIBDIR "$(pkglibdir)"'; \ - echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ - } | sed '/""/d' > $@-t && \ - mv -f $@-t $@ - -BUILT_SOURCES += configmake.h -CLEANFILES += configmake.h configmake.h-t - -endif -## end gnulib module configmake - ## begin gnulib module crc libgnu_a_SOURCES += crc.c @@ -140,7 +127,7 @@ BUILT_SOURCES += $(GETOPT_H) $(GETOPT_CDEFS_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -getopt.h: getopt.in.h $(top_builddir)/config.status +getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @@ -306,76 +293,10 @@ EXTRA_DIST += limits.in.h ## begin gnulib module localcharset if gl_GNULIB_ENABLED_localcharset -libgnu_a_SOURCES += localcharset.h localcharset.c - -# We need the following in order to install a simple file in $(libdir) -# which is shared with other installed packages. We use a list of referencing -# packages so that "make uninstall" will remove the file if and only if it -# is not used by another installed package. -# On systems with glibc-2.1 or newer, the file is redundant, therefore we -# avoid installing it. - -all-local: charset.alias ref-add.sed ref-del.sed - -charset_alias = $(DESTDIR)$(libdir)/charset.alias -charset_tmp = $(DESTDIR)$(libdir)/charset.tmp -install-exec-local: install-exec-localcharset -install-exec-localcharset: all-local - if test $(GLIBC21) = no; then \ - case '$(host_os)' in \ - darwin[56]*) \ - need_charset_alias=true ;; \ - darwin* | cygwin* | mingw* | pw32* | cegcc*) \ - need_charset_alias=false ;; \ - *) \ - need_charset_alias=true ;; \ - esac ; \ - else \ - need_charset_alias=false ; \ - fi ; \ - if $$need_charset_alias; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ - fi ; \ - if test -f $(charset_alias); then \ - sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - else \ - if $$need_charset_alias; then \ - sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - fi ; \ - fi - -uninstall-local: uninstall-localcharset -uninstall-localcharset: all-local - if test -f $(charset_alias); then \ - sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ - if grep '^# Packages using this file: $$' $(charset_tmp) \ - > /dev/null; then \ - rm -f $(charset_alias); \ - else \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ - fi; \ - rm -f $(charset_tmp); \ - fi - -charset.alias: config.charset - $(AM_V_GEN)rm -f t-$@ $@ && \ - $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ - mv t-$@ $@ - -SUFFIXES += .sed .sin -.sin.sed: - $(AM_V_GEN)rm -f t-$@ $@ && \ - sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ - mv t-$@ $@ - -CLEANFILES += charset.alias ref-add.sed ref-del.sed +libgnu_a_SOURCES += localcharset.c endif -EXTRA_DIST += config.charset ref-add.sin ref-del.sin +EXTRA_DIST += localcharset.h ## end gnulib module localcharset @@ -396,11 +317,16 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ + -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \ + -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ + -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ + -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ + -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @@ -425,6 +351,14 @@ EXTRA_libgnu_a_SOURCES += localtime-buffer.c ## end gnulib module localtime-buffer +## begin gnulib module lock + +if gl_GNULIB_ENABLED_lock +libgnu_a_SOURCES += glthread/lock.h glthread/lock.c + +endif +## end gnulib module lock + ## begin gnulib module mbrtowc @@ -476,6 +410,42 @@ EXTRA_libgnu_a_SOURCES += memchr.c ## end gnulib module memchr +## begin gnulib module monetary + +BUILT_SOURCES += $(MONETARY_H) + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +if GL_GENERATE_MONETARY_H +monetary.h: monetary.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_MONETARY_H''@|$(HAVE_MONETARY_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_MONETARY_H''@|$(NEXT_MONETARY_H)|g' \ + -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ + -e 's/@''GNULIB_STRFMON_L''@/$(GNULIB_STRFMON_L)/g' \ + -e 's|@''HAVE_STRFMON_L''@|$(HAVE_STRFMON_L)|g' \ + -e 's|@''REPLACE_STRFMON_L''@|$(REPLACE_STRFMON_L)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/monetary.in.h; \ + } > $@-t && \ + mv $@-t $@ +else +monetary.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += monetary.h monetary.h-t + +EXTRA_DIST += monetary.in.h + +## end gnulib module monetary + ## begin gnulib module snippet/_Noreturn if gl_GNULIB_ENABLED_b3ae4a413a1340415f34a52d1dafb147 @@ -816,6 +786,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ + -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ @@ -829,7 +800,9 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ + -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ + -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ @@ -847,8 +820,10 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ + -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ + -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ @@ -857,6 +832,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ @@ -864,11 +840,14 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ + -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ + -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ + -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @@ -976,20 +955,20 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ - -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ - -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ - -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ - -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ - -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ - -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @@ -1011,15 +990,6 @@ libgnu_a_SOURCES += strnlen1.h strnlen1.c endif ## end gnulib module strnlen1 -## begin gnulib module strstr-simple - - -EXTRA_DIST += str-two-way.h strstr.c - -EXTRA_libgnu_a_SOURCES += strstr.c - -## end gnulib module strstr-simple - ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h @@ -1144,6 +1114,16 @@ EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types +## begin gnulib module threadlib + +if gl_GNULIB_ENABLED_threadlib +libgnu_a_SOURCES += glthread/threadlib.c + +endif +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + +## end gnulib module threadlib + ## begin gnulib module time BUILT_SOURCES += time.h @@ -1216,9 +1196,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's/@''GNULIB_ACCESS''@/$(GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ @@ -1238,6 +1220,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ @@ -1268,6 +1251,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ @@ -1281,6 +1265,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -1295,7 +1280,6 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ - -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ @@ -1307,14 +1291,17 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ + -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ - sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ + -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ @@ -1323,6 +1310,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ @@ -1619,6 +1607,50 @@ EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h +## begin gnulib module windows-mutex + +if gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440 + +endif +EXTRA_DIST += windows-initguard.h windows-mutex.c windows-mutex.h + +EXTRA_libgnu_a_SOURCES += windows-mutex.c + +## end gnulib module windows-mutex + +## begin gnulib module windows-once + +if gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab + +endif +EXTRA_DIST += windows-once.c windows-once.h + +EXTRA_libgnu_a_SOURCES += windows-once.c + +## end gnulib module windows-once + +## begin gnulib module windows-recmutex + +if gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354 + +endif +EXTRA_DIST += windows-initguard.h windows-recmutex.c windows-recmutex.h + +EXTRA_libgnu_a_SOURCES += windows-recmutex.c + +## end gnulib module windows-recmutex + +## begin gnulib module windows-rwlock + +if gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef + +endif +EXTRA_DIST += windows-initguard.h windows-rwlock.c windows-rwlock.h + +EXTRA_libgnu_a_SOURCES += windows-rwlock.c + +## end gnulib module windows-rwlock + ## begin gnulib module wmemcpy if gl_GNULIB_ENABLED_wmemcpy diff --git a/lib/Makefile.in b/lib/Makefile.in index 0a8af2a..196bc4b 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,7 +14,7 @@ @SET_MAKE@ -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -35,7 +35,41 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h crc getopt-gnu gettext-h gettimeofday locale mbrtowc mbsrtowcs stdbool stdio striconv string strstr sys_stat sys_time unistd wchar wcrtomb wcsdup wctob wctype-h +# Reproduce by: +# gnulib-tool --import \ +# --lib=libgnu \ +# --source-base=lib \ +# --m4-base=m4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# assert \ +# btowc \ +# config-h \ +# crc \ +# extensions \ +# getopt-gnu \ +# gettext-h \ +# gettimeofday \ +# locale \ +# mbrtowc \ +# mbsrtowcs \ +# monetary \ +# stdbool \ +# stdio \ +# striconv \ +# string \ +# sys_stat \ +# sys_time \ +# unistd \ +# wchar \ +# wcrtomb \ +# wcsdup \ +# wctob \ +# wctype-h @@ -98,6 +132,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -112,34 +147,32 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@gl_GNULIB_ENABLED_configmake_TRUE@am__append_1 = configmake.h -@gl_GNULIB_ENABLED_configmake_TRUE@am__append_2 = configmake.h configmake.h-t -@gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE@am__append_3 = hard-locale.c -@gl_GNULIB_ENABLED_localcharset_TRUE@am__append_4 = localcharset.h localcharset.c -@gl_GNULIB_ENABLED_localcharset_TRUE@am__append_5 = .sed .sin -@gl_GNULIB_ENABLED_localcharset_TRUE@am__append_6 = charset.alias ref-add.sed ref-del.sed -@gl_GNULIB_ENABLED_stdlib_TRUE@am__append_7 = stdlib.h -@gl_GNULIB_ENABLED_stdlib_TRUE@am__append_8 = stdlib.h stdlib.h-t -@gl_GNULIB_ENABLED_strnlen1_TRUE@am__append_9 = strnlen1.h strnlen1.c -@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_10 = unistr/u8-mbtoucr.c -@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_11 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c +@gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE@am__append_1 = hard-locale.c +@gl_GNULIB_ENABLED_localcharset_TRUE@am__append_2 = localcharset.c +@gl_GNULIB_ENABLED_lock_TRUE@am__append_3 = glthread/lock.h glthread/lock.c +@gl_GNULIB_ENABLED_stdlib_TRUE@am__append_4 = stdlib.h +@gl_GNULIB_ENABLED_stdlib_TRUE@am__append_5 = stdlib.h stdlib.h-t +@gl_GNULIB_ENABLED_strnlen1_TRUE@am__append_6 = strnlen1.h strnlen1.c +@gl_GNULIB_ENABLED_threadlib_TRUE@am__append_7 = glthread/threadlib.c +@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_8 = unistr/u8-mbtoucr.c +@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_9 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -148,25 +181,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ @@ -176,6 +211,7 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) +LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; @@ -184,24 +220,26 @@ libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__libgnu_a_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c crc.c gettext.h hard-locale.c \ - localcharset.h localcharset.c striconv.h striconv.c strnlen1.h \ - strnlen1.c unistd.c unistr/u8-mbtoucr.c unistr/u8-uctomb.c \ - unistr/u8-uctomb-aux.c wctype-h.c + localcharset.c glthread/lock.h glthread/lock.c striconv.h \ + striconv.c strnlen1.h strnlen1.c glthread/threadlib.c unistd.c \ + unistr/u8-mbtoucr.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c \ + wctype-h.c @gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76_TRUE@am__objects_1 = hard-locale.$(OBJEXT) @gl_GNULIB_ENABLED_localcharset_TRUE@am__objects_2 = \ @gl_GNULIB_ENABLED_localcharset_TRUE@ localcharset.$(OBJEXT) -@gl_GNULIB_ENABLED_strnlen1_TRUE@am__objects_3 = strnlen1.$(OBJEXT) am__dirstamp = $(am__leading_dot)dirstamp -@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_4 = unistr/u8-mbtoucr.$(OBJEXT) -@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_5 = unistr/u8-uctomb.$(OBJEXT) \ +@gl_GNULIB_ENABLED_lock_TRUE@am__objects_3 = glthread/lock.$(OBJEXT) +@gl_GNULIB_ENABLED_strnlen1_TRUE@am__objects_4 = strnlen1.$(OBJEXT) +@gl_GNULIB_ENABLED_threadlib_TRUE@am__objects_5 = glthread/threadlib.$(OBJEXT) +@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_6 = unistr/u8-mbtoucr.$(OBJEXT) +@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_7 = unistr/u8-uctomb.$(OBJEXT) \ @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/u8-uctomb-aux.$(OBJEXT) am_libgnu_a_OBJECTS = c-ctype.$(OBJEXT) c-strcasecmp.$(OBJEXT) \ c-strncasecmp.$(OBJEXT) crc.$(OBJEXT) $(am__objects_1) \ - $(am__objects_2) striconv.$(OBJEXT) $(am__objects_3) \ - unistd.$(OBJEXT) $(am__objects_4) $(am__objects_5) \ - wctype-h.$(OBJEXT) + $(am__objects_2) $(am__objects_3) striconv.$(OBJEXT) \ + $(am__objects_4) $(am__objects_5) unistd.$(OBJEXT) \ + $(am__objects_6) $(am__objects_7) wctype-h.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) -LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -216,7 +254,27 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/btowc.Po ./$(DEPDIR)/c-ctype.Po \ + ./$(DEPDIR)/c-strcasecmp.Po ./$(DEPDIR)/c-strncasecmp.Po \ + ./$(DEPDIR)/crc.Po ./$(DEPDIR)/getopt.Po \ + ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/gettimeofday.Po \ + ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/iconv.Po \ + ./$(DEPDIR)/iconv_close.Po ./$(DEPDIR)/iconv_open.Po \ + ./$(DEPDIR)/localcharset.Po ./$(DEPDIR)/localtime-buffer.Po \ + ./$(DEPDIR)/mbrtowc.Po ./$(DEPDIR)/mbsinit.Po \ + ./$(DEPDIR)/mbsrtowcs-state.Po ./$(DEPDIR)/mbsrtowcs.Po \ + ./$(DEPDIR)/mbtowc.Po ./$(DEPDIR)/memchr.Po \ + ./$(DEPDIR)/striconv.Po ./$(DEPDIR)/strnlen1.Po \ + ./$(DEPDIR)/unistd.Po ./$(DEPDIR)/wcrtomb.Po \ + ./$(DEPDIR)/wcsdup.Po ./$(DEPDIR)/wctob.Po \ + ./$(DEPDIR)/wctomb.Po ./$(DEPDIR)/wctype-h.Po \ + ./$(DEPDIR)/windows-mutex.Po ./$(DEPDIR)/windows-once.Po \ + ./$(DEPDIR)/windows-recmutex.Po ./$(DEPDIR)/windows-rwlock.Po \ + ./$(DEPDIR)/wmemcpy.Po glthread/$(DEPDIR)/lock.Po \ + glthread/$(DEPDIR)/threadlib.Po unistr/$(DEPDIR)/u8-mbtoucr.Po \ + unistr/$(DEPDIR)/u8-uctomb-aux.Po \ + unistr/$(DEPDIR)/u8-uctomb.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -253,7 +311,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -302,7 +360,6 @@ am__relativize = \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -336,9 +393,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -346,6 +403,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -399,6 +457,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -414,6 +473,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -507,6 +567,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -518,6 +579,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -595,6 +657,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -625,6 +688,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -644,6 +708,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -656,10 +721,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -676,6 +743,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -688,7 +756,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -713,6 +783,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -722,10 +793,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -742,7 +815,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -810,8 +882,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -822,10 +896,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -833,6 +910,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -849,6 +927,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -879,6 +958,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -889,6 +969,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -896,6 +977,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -913,11 +995,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -945,6 +1029,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -956,6 +1041,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -968,6 +1054,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -980,6 +1067,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -988,6 +1076,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -1084,7 +1173,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -1103,7 +1191,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects +AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = libgnu.a @@ -1117,36 +1205,41 @@ EXTRA_DIST = btowc.c crc.h getopt-cdefs.in.h getopt-core.h \ iconv_open-aix.gperf iconv_open-hpux.gperf \ iconv_open-irix.gperf iconv_open-osf.gperf \ iconv_open-solaris.gperf iconv_open.c limits.in.h \ - config.charset ref-add.sin ref-del.sin locale.in.h \ - localtime-buffer.c localtime-buffer.h mbrtowc.c mbsinit.c \ - mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c mbtowc-impl.h \ - mbtowc.c memchr.c memchr.valgrind _Noreturn.h arg-nonnull.h \ + localcharset.h locale.in.h localtime-buffer.c \ + localtime-buffer.h mbrtowc.c mbsinit.c mbsrtowcs-impl.h \ + mbsrtowcs-state.c mbsrtowcs.c mbtowc-impl.h mbtowc.c memchr.c \ + memchr.valgrind monetary.in.h _Noreturn.h arg-nonnull.h \ c++defs.h unused-parameter.h warn-on-use.h stdbool.in.h \ stddef.in.h stdint.in.h stdio.in.h stdlib.in.h streq.h \ - string.in.h str-two-way.h strstr.c sys_stat.in.h sys_time.in.h \ - sys_types.in.h time.in.h unistd.in.h unistr.in.h unitypes.in.h \ - verify.h wchar.in.h wcrtomb.c wcsdup-impl.h wcsdup.c wctob.c \ - wctomb-impl.h wctomb.c wctype.in.h wmemcpy-impl.h wmemcpy.c -BUILT_SOURCES = $(am__append_1) $(GETOPT_H) $(GETOPT_CDEFS_H) \ - $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \ - iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ - $(LIMITS_H) locale.h $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) \ - stdio.h $(am__append_7) string.h sys/stat.h sys/time.h \ - sys/types.h time.h unistd.h $(LIBUNISTRING_UNISTR_H) \ + string.in.h sys_stat.in.h sys_time.in.h sys_types.in.h \ + $(top_srcdir)/build-aux/config.rpath time.in.h unistd.in.h \ + unistr.in.h unitypes.in.h verify.h wchar.in.h wcrtomb.c \ + wcsdup-impl.h wcsdup.c wctob.c wctomb-impl.h wctomb.c \ + wctype.in.h windows-initguard.h windows-mutex.c \ + windows-mutex.h windows-once.c windows-once.h \ + windows-initguard.h windows-recmutex.c windows-recmutex.h \ + windows-initguard.h windows-rwlock.c windows-rwlock.h \ + wmemcpy-impl.h wmemcpy.c +BUILT_SOURCES = $(GETOPT_H) $(GETOPT_CDEFS_H) $(ICONV_H) \ + iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \ + iconv_open-osf.h iconv_open-solaris.h $(LIMITS_H) locale.h \ + $(MONETARY_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \ + $(am__append_4) string.h sys/stat.h sys/time.h sys/types.h \ + time.h unistd.h $(LIBUNISTRING_UNISTR_H) \ $(LIBUNISTRING_UNITYPES_H) wchar.h wctype.h -SUFFIXES = $(am__append_5) +SUFFIXES = MOSTLYCLEANFILES = core *.stackdump getopt.h getopt.h-t getopt-cdefs.h \ getopt-cdefs.h-t iconv.h iconv.h-t iconv_open-aix.h-t \ iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t \ iconv_open-solaris.h-t limits.h limits.h-t locale.h locale.h-t \ - stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ - stdio.h stdio.h-t $(am__append_8) string.h string.h-t \ - sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t sys/types.h \ - sys/types.h-t time.h time.h-t unistd.h unistd.h-t unistr.h \ - unistr.h-t unitypes.h unitypes.h-t wchar.h wchar.h-t wctype.h \ - wctype.h-t + monetary.h monetary.h-t stdbool.h stdbool.h-t stddef.h \ + stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \ + $(am__append_5) string.h string.h-t sys/stat.h sys/stat.h-t \ + sys/time.h sys/time.h-t sys/types.h sys/types.h-t time.h \ + time.h-t unistd.h unistd.h-t unistr.h unistr.h-t unitypes.h \ + unitypes.h-t wchar.h wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = sys -CLEANFILES = $(am__append_2) $(am__append_6) +CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h @@ -1154,16 +1247,17 @@ MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \ AM_CPPFLAGS = AM_CFLAGS = libgnu_a_SOURCES = c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \ - c-strncasecmp.c crc.c gettext.h $(am__append_3) \ - $(am__append_4) striconv.h striconv.c $(am__append_9) unistd.c \ - $(am__append_10) $(am__append_11) wctype-h.c + c-strncasecmp.c crc.c gettext.h $(am__append_1) \ + $(am__append_2) $(am__append_3) striconv.h striconv.c \ + $(am__append_6) $(am__append_7) unistd.c $(am__append_8) \ + $(am__append_9) wctype-h.c libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = btowc.c getopt.c getopt1.c gettimeofday.c \ iconv.c iconv_close.c iconv_open.c localtime-buffer.c \ mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \ - memchr.c strstr.c wcrtomb.c wcsdup.c wctob.c wctomb.c \ - wmemcpy.c + memchr.c wcrtomb.c wcsdup.c wctob.c wctomb.c windows-mutex.c \ + windows-once.c windows-recmutex.c windows-rwlock.c wmemcpy.c # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression @@ -1173,8 +1267,6 @@ GPERF = gperf V_GPERF = $(V_GPERF_@AM_V@) V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@) V_GPERF_0 = @echo " GPERF " $@; -@gl_GNULIB_ENABLED_localcharset_TRUE@charset_alias = $(DESTDIR)$(libdir)/charset.alias -@gl_GNULIB_ENABLED_localcharset_TRUE@charset_tmp = $(DESTDIR)$(libdir)/charset.tmp # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that @@ -1204,7 +1296,7 @@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .sed .sin .c .o .obj +.SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -1222,8 +1314,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1237,6 +1329,27 @@ $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +glthread/$(am__dirstamp): + @$(MKDIR_P) glthread + @: > glthread/$(am__dirstamp) +glthread/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) glthread/$(DEPDIR) + @: > glthread/$(DEPDIR)/$(am__dirstamp) +glthread/lock.$(OBJEXT): glthread/$(am__dirstamp) \ + glthread/$(DEPDIR)/$(am__dirstamp) +glthread/threadlib.$(OBJEXT): glthread/$(am__dirstamp) \ + glthread/$(DEPDIR)/$(am__dirstamp) unistr/$(am__dirstamp): @$(MKDIR_P) unistr @: > unistr/$(am__dirstamp) @@ -1255,57 +1368,58 @@ libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDEN $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) $(AM_V_at)$(RANLIB) libgnu.a -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f glthread/*.$(OBJEXT) -rm -f unistr/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localtime-buffer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs-state.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcsdup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmemcpy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localtime-buffer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs-state.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcsdup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-mutex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-once.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-recmutex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-rwlock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmemcpy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -1422,7 +1536,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1480,8 +1597,7 @@ distdir: $(DISTFILES) check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive -@gl_GNULIB_ENABLED_localcharset_FALSE@all-local: -all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local +all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) @@ -1513,6 +1629,8 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f glthread/$(DEPDIR)/$(am__dirstamp) + -rm -f glthread/$(am__dirstamp) -rm -f unistr/$(DEPDIR)/$(am__dirstamp) -rm -f unistr/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) @@ -1522,15 +1640,50 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@gl_GNULIB_ENABLED_localcharset_FALSE@uninstall-local: -@gl_GNULIB_ENABLED_localcharset_FALSE@install-exec-local: clean: clean-recursive clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) + -rm -f ./$(DEPDIR)/btowc.Po + -rm -f ./$(DEPDIR)/c-ctype.Po + -rm -f ./$(DEPDIR)/c-strcasecmp.Po + -rm -f ./$(DEPDIR)/c-strncasecmp.Po + -rm -f ./$(DEPDIR)/crc.Po + -rm -f ./$(DEPDIR)/getopt.Po + -rm -f ./$(DEPDIR)/getopt1.Po + -rm -f ./$(DEPDIR)/gettimeofday.Po + -rm -f ./$(DEPDIR)/hard-locale.Po + -rm -f ./$(DEPDIR)/iconv.Po + -rm -f ./$(DEPDIR)/iconv_close.Po + -rm -f ./$(DEPDIR)/iconv_open.Po + -rm -f ./$(DEPDIR)/localcharset.Po + -rm -f ./$(DEPDIR)/localtime-buffer.Po + -rm -f ./$(DEPDIR)/mbrtowc.Po + -rm -f ./$(DEPDIR)/mbsinit.Po + -rm -f ./$(DEPDIR)/mbsrtowcs-state.Po + -rm -f ./$(DEPDIR)/mbsrtowcs.Po + -rm -f ./$(DEPDIR)/mbtowc.Po + -rm -f ./$(DEPDIR)/memchr.Po + -rm -f ./$(DEPDIR)/striconv.Po + -rm -f ./$(DEPDIR)/strnlen1.Po + -rm -f ./$(DEPDIR)/unistd.Po + -rm -f ./$(DEPDIR)/wcrtomb.Po + -rm -f ./$(DEPDIR)/wcsdup.Po + -rm -f ./$(DEPDIR)/wctob.Po + -rm -f ./$(DEPDIR)/wctomb.Po + -rm -f ./$(DEPDIR)/wctype-h.Po + -rm -f ./$(DEPDIR)/windows-mutex.Po + -rm -f ./$(DEPDIR)/windows-once.Po + -rm -f ./$(DEPDIR)/windows-recmutex.Po + -rm -f ./$(DEPDIR)/windows-rwlock.Po + -rm -f ./$(DEPDIR)/wmemcpy.Po + -rm -f glthread/$(DEPDIR)/lock.Po + -rm -f glthread/$(DEPDIR)/threadlib.Po + -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Po + -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Po + -rm -f unistr/$(DEPDIR)/u8-uctomb.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1553,7 +1706,7 @@ install-dvi: install-dvi-recursive install-dvi-am: -install-exec-am: install-exec-local +install-exec-am: install-html: install-html-recursive @@ -1576,7 +1729,44 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) + -rm -f ./$(DEPDIR)/btowc.Po + -rm -f ./$(DEPDIR)/c-ctype.Po + -rm -f ./$(DEPDIR)/c-strcasecmp.Po + -rm -f ./$(DEPDIR)/c-strncasecmp.Po + -rm -f ./$(DEPDIR)/crc.Po + -rm -f ./$(DEPDIR)/getopt.Po + -rm -f ./$(DEPDIR)/getopt1.Po + -rm -f ./$(DEPDIR)/gettimeofday.Po + -rm -f ./$(DEPDIR)/hard-locale.Po + -rm -f ./$(DEPDIR)/iconv.Po + -rm -f ./$(DEPDIR)/iconv_close.Po + -rm -f ./$(DEPDIR)/iconv_open.Po + -rm -f ./$(DEPDIR)/localcharset.Po + -rm -f ./$(DEPDIR)/localtime-buffer.Po + -rm -f ./$(DEPDIR)/mbrtowc.Po + -rm -f ./$(DEPDIR)/mbsinit.Po + -rm -f ./$(DEPDIR)/mbsrtowcs-state.Po + -rm -f ./$(DEPDIR)/mbsrtowcs.Po + -rm -f ./$(DEPDIR)/mbtowc.Po + -rm -f ./$(DEPDIR)/memchr.Po + -rm -f ./$(DEPDIR)/striconv.Po + -rm -f ./$(DEPDIR)/strnlen1.Po + -rm -f ./$(DEPDIR)/unistd.Po + -rm -f ./$(DEPDIR)/wcrtomb.Po + -rm -f ./$(DEPDIR)/wcsdup.Po + -rm -f ./$(DEPDIR)/wctob.Po + -rm -f ./$(DEPDIR)/wctomb.Po + -rm -f ./$(DEPDIR)/wctype-h.Po + -rm -f ./$(DEPDIR)/windows-mutex.Po + -rm -f ./$(DEPDIR)/windows-once.Po + -rm -f ./$(DEPDIR)/windows-recmutex.Po + -rm -f ./$(DEPDIR)/windows-rwlock.Po + -rm -f ./$(DEPDIR)/wmemcpy.Po + -rm -f glthread/$(DEPDIR)/lock.Po + -rm -f glthread/$(DEPDIR)/threadlib.Po + -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Po + -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Po + -rm -f unistr/$(DEPDIR)/u8-uctomb.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1593,70 +1783,32 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-local +uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ - check check-am clean clean-generic clean-noinstLIBRARIES \ - clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-exec-local install-html \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic \ + clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-local + uninstall-am .PRECIOUS: Makefile -# Listed in the same order as the GNU makefile conventions, and -# provided by autoconf 2.59c+ or 2.70. -# The Automake-defined pkg* macros are appended, in the order -# listed in the Automake 1.10a+ documentation. -@gl_GNULIB_ENABLED_configmake_TRUE@configmake.h: Makefile -@gl_GNULIB_ENABLED_configmake_TRUE@ $(AM_V_GEN)rm -f $@-t && \ -@gl_GNULIB_ENABLED_configmake_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PREFIX "$(prefix)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define BINDIR "$(bindir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define SBINDIR "$(sbindir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define LIBEXECDIR "$(libexecdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define DATAROOTDIR "$(datarootdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define DATADIR "$(datadir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define SYSCONFDIR "$(sysconfdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define RUNSTATEDIR "$(runstatedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define INCLUDEDIR "$(includedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define DOCDIR "$(docdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define INFODIR "$(infodir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define HTMLDIR "$(htmldir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define DVIDIR "$(dvidir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PDFDIR "$(pdfdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PSDIR "$(psdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define LIBDIR "$(libdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define LISPDIR "$(lispdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define LOCALEDIR "$(localedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define MANDIR "$(mandir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define MANEXT "$(manext)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PKGDATADIR "$(pkgdatadir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ -@gl_GNULIB_ENABLED_configmake_TRUE@ } | sed '/""/d' > $@-t && \ -@gl_GNULIB_ENABLED_configmake_TRUE@ mv -f $@-t $@ - # We need the following in order to create when the system # doesn't have one that works with the given compiler. -getopt.h: getopt.in.h $(top_builddir)/config.status +getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @@ -1734,65 +1886,6 @@ $(srcdir)/iconv_open-solaris.h: $(srcdir)/iconv_open-solaris.gperf @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ -# We need the following in order to install a simple file in $(libdir) -# which is shared with other installed packages. We use a list of referencing -# packages so that "make uninstall" will remove the file if and only if it -# is not used by another installed package. -# On systems with glibc-2.1 or newer, the file is redundant, therefore we -# avoid installing it. - -@gl_GNULIB_ENABLED_localcharset_TRUE@all-local: charset.alias ref-add.sed ref-del.sed -@gl_GNULIB_ENABLED_localcharset_TRUE@install-exec-local: install-exec-localcharset -@gl_GNULIB_ENABLED_localcharset_TRUE@install-exec-localcharset: all-local -@gl_GNULIB_ENABLED_localcharset_TRUE@ if test $(GLIBC21) = no; then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ case '$(host_os)' in \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ darwin[56]*) \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ need_charset_alias=true ;; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ darwin* | cygwin* | mingw* | pw32* | cegcc*) \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ need_charset_alias=false ;; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ *) \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ need_charset_alias=true ;; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ esac ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ else \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ need_charset_alias=false ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ if $$need_charset_alias; then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ if test -f $(charset_alias); then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ rm -f $(charset_tmp) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ else \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ if $$need_charset_alias; then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ rm -f $(charset_tmp) ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi ; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi - -@gl_GNULIB_ENABLED_localcharset_TRUE@uninstall-local: uninstall-localcharset -@gl_GNULIB_ENABLED_localcharset_TRUE@uninstall-localcharset: all-local -@gl_GNULIB_ENABLED_localcharset_TRUE@ if test -f $(charset_alias); then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ if grep '^# Packages using this file: $$' $(charset_tmp) \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ > /dev/null; then \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ rm -f $(charset_alias); \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ else \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi; \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ rm -f $(charset_tmp); \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ fi - -@gl_GNULIB_ENABLED_localcharset_TRUE@charset.alias: config.charset -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(AM_V_GEN)rm -f t-$@ $@ && \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ mv t-$@ $@ -@gl_GNULIB_ENABLED_localcharset_TRUE@.sin.sed: -@gl_GNULIB_ENABLED_localcharset_TRUE@ $(AM_V_GEN)rm -f t-$@ $@ && \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ -@gl_GNULIB_ENABLED_localcharset_TRUE@ mv t-$@ $@ - # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @@ -1806,11 +1899,16 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ + -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \ + -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ + -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ + -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ + -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @@ -1819,6 +1917,30 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H } > $@-t && \ mv $@-t $@ +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +@GL_GENERATE_MONETARY_H_TRUE@monetary.h: monetary.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) +@GL_GENERATE_MONETARY_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_MONETARY_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_MONETARY_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''HAVE_MONETARY_H''@|$(HAVE_MONETARY_H)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''NEXT_MONETARY_H''@|$(NEXT_MONETARY_H)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's/@''GNULIB_STRFMON_L''@/$(GNULIB_STRFMON_L)/g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''HAVE_STRFMON_L''@|$(HAVE_STRFMON_L)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e 's|@''REPLACE_STRFMON_L''@|$(REPLACE_STRFMON_L)|g' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ +@GL_GENERATE_MONETARY_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ +@GL_GENERATE_MONETARY_H_TRUE@ < $(srcdir)/monetary.in.h; \ +@GL_GENERATE_MONETARY_H_TRUE@ } > $@-t && \ +@GL_GENERATE_MONETARY_H_TRUE@ mv $@-t $@ +@GL_GENERATE_MONETARY_H_FALSE@monetary.h: $(top_builddir)/config.status +@GL_GENERATE_MONETARY_H_FALSE@ rm -f $@ + # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @@ -2047,6 +2169,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ @@ -2060,7 +2183,9 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ @@ -2078,8 +2203,10 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ @@ -2088,6 +2215,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ @@ -2095,11 +2223,14 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ +@gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ @gl_GNULIB_ENABLED_stdlib_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @@ -2180,20 +2311,20 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ - -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ - -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ - -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ - -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ - -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ - -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @@ -2356,9 +2487,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's/@''GNULIB_ACCESS''@/$(GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ @@ -2378,6 +2511,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ @@ -2408,6 +2542,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ @@ -2421,6 +2556,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -2435,7 +2571,6 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ - -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ @@ -2447,14 +2582,17 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ + -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ - sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ + -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ @@ -2463,6 +2601,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ diff --git a/lib/README b/lib/README index 4f45ce5..af32813 100644 --- a/lib/README +++ b/lib/README @@ -1,10 +1,23 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, lib, contains source code as generated by the Gnulib GNU -Portability Library "gnulib-tool" script. See the project web site at -http://www.gnu.org/software/gnulib/ for more information. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `lib`, contains source code as generated by the `Gnulib +GNU Portability Library`__ ``gnulib-tool`` script. See that project web +site for more information. + +__ https://www.gnu.org/software/gnulib/ + + +The following file is used by `xopen-source.m4` to redefine +``_XOPEN_SOURCE`` appropriately. It is not part of the GNU Portability +Library: + +* `xopen-source.h` + +The following file provides translatable strings for obsolete versions of +various libraries. It is not part of the GNU Portability Library: + +* `obsolete-strings.c` diff --git a/lib/_Noreturn.h b/lib/_Noreturn.h index c44ad89..db9b455 100644 --- a/lib/_Noreturn.h +++ b/lib/_Noreturn.h @@ -1,8 +1,31 @@ -#if !defined _Noreturn && __STDC_VERSION__ < 201112 -# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ - || 0x5110 <= __SUNPRO_C) +/* A C macro for declaring that a function does not return. + Copyright (C) 2011-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER))) +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn diff --git a/lib/arg-nonnull.h b/lib/arg-nonnull.h index 1e62cc8..ad8c26c 100644 --- a/lib/arg-nonnull.h +++ b/lib/arg-nonnull.h @@ -1,5 +1,5 @@ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. diff --git a/lib/btowc.c b/lib/btowc.c index 214d2b7..9e2496d 100644 --- a/lib/btowc.c +++ b/lib/btowc.c @@ -1,5 +1,5 @@ /* Convert unibyte character to wide character. - Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2008, 2010-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/c++defs.h b/lib/c++defs.h index f03f359..87d0716 100644 --- a/lib/c++defs.h +++ b/lib/c++defs.h @@ -1,5 +1,5 @@ /* C++ compatible function declaration macros. - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H @@ -266,7 +266,7 @@ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , +/* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ @@ -294,7 +294,7 @@ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , +/* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ diff --git a/lib/c-ctype.h b/lib/c-ctype.h index bcdba6b..4d52176 100644 --- a/lib/c-ctype.h +++ b/lib/c-ctype.h @@ -5,7 +5,7 @@ functions' behaviour depends on the current locale set via setlocale. - Copyright (C) 2000-2003, 2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2006, 2008-2019 Free Software Foundation, Inc. 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 @@ -18,7 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, see . */ +along with this program; if not, see . */ #ifndef C_CTYPE_H #define C_CTYPE_H diff --git a/lib/c-strcase.h b/lib/c-strcase.h index c82dab1..b67c9b5 100644 --- a/lib/c-strcase.h +++ b/lib/c-strcase.h @@ -1,5 +1,5 @@ /* Case-insensitive string comparison functions in C locale. - Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2017 Free Software + Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef C_STRCASE_H #define C_STRCASE_H diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c index 5bce873..ec50f1a 100644 --- a/lib/c-strcasecmp.c +++ b/lib/c-strcasecmp.c @@ -1,5 +1,5 @@ /* c-strcasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2006, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program; if not, see . */ #include diff --git a/lib/c-strncasecmp.c b/lib/c-strncasecmp.c index ada62d7..513c353 100644 --- a/lib/c-strncasecmp.c +++ b/lib/c-strncasecmp.c @@ -1,5 +1,5 @@ /* c-strncasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2006, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program; if not, see . */ #include diff --git a/lib/config.charset b/lib/config.charset deleted file mode 100644 index 8bedbf3..0000000 --- a/lib/config.charset +++ /dev/null @@ -1,682 +0,0 @@ -#! /bin/sh -# Output a system dependent table of character encoding aliases. -# -# Copyright (C) 2000-2004, 2006-2017 Free Software Foundation, Inc. -# -# 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, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, see . -# -# The table consists of lines of the form -# ALIAS CANONICAL -# -# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". -# ALIAS is compared in a case sensitive way. -# -# CANONICAL is the GNU canonical name for this character encoding. -# It must be an encoding supported by libiconv. Support by GNU libc is -# also desirable. CANONICAL is case insensitive. Usually an upper case -# MIME charset name is preferred. -# The current list of GNU canonical charset names is as follows. -# -# name MIME? used by which systems -# (darwin = Mac OS X, woe32 = native Windows) -# -# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin -# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin -# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin -# ISO-8859-3 Y glibc solaris cygwin -# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin -# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin -# ISO-8859-6 Y glibc aix hpux solaris cygwin -# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin -# ISO-8859-8 Y glibc aix hpux osf solaris cygwin -# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin -# ISO-8859-13 glibc netbsd openbsd darwin cygwin -# ISO-8859-14 glibc cygwin -# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin -# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin -# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin -# KOI8-T glibc -# CP437 dos -# CP775 dos -# CP850 aix osf dos -# CP852 dos -# CP855 dos -# CP856 aix -# CP857 dos -# CP861 dos -# CP862 dos -# CP864 dos -# CP865 dos -# CP866 freebsd netbsd openbsd darwin dos -# CP869 dos -# CP874 woe32 dos -# CP922 aix -# CP932 aix cygwin woe32 dos -# CP943 aix -# CP949 osf darwin woe32 dos -# CP950 woe32 dos -# CP1046 aix -# CP1124 aix -# CP1125 dos -# CP1129 aix -# CP1131 darwin -# CP1250 woe32 -# CP1251 glibc solaris netbsd openbsd darwin cygwin woe32 -# CP1252 aix woe32 -# CP1253 woe32 -# CP1254 woe32 -# CP1255 glibc woe32 -# CP1256 woe32 -# CP1257 woe32 -# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin -# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin -# EUC-TW glibc aix hpux irix osf solaris netbsd -# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin -# BIG5-HKSCS glibc solaris darwin -# GBK glibc aix osf solaris darwin cygwin woe32 dos -# GB18030 glibc solaris netbsd darwin -# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin -# JOHAB glibc solaris woe32 -# TIS-620 glibc aix hpux osf solaris cygwin -# VISCII Y glibc -# TCVN5712-1 glibc -# ARMSCII-8 glibc darwin -# GEORGIAN-PS glibc cygwin -# PT154 glibc -# HP-ROMAN8 hpux -# HP-ARABIC8 hpux -# HP-GREEK8 hpux -# HP-HEBREW8 hpux -# HP-TURKISH8 hpux -# HP-KANA8 hpux -# DEC-KANJI osf -# DEC-HANYU osf -# UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin -# -# Note: Names which are not marked as being a MIME name should not be used in -# Internet protocols for information interchange (mail, news, etc.). -# -# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications -# must understand both names and treat them as equivalent. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - -host="$1" -os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` -echo "# This file contains a table of character encoding aliases," -echo "# suitable for operating system '${os}'." -echo "# It was automatically generated from config.charset." -# List of references, updated during installation: -echo "# Packages using this file: " -case "$os" in - linux-gnulibc1*) - # Linux libc5 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "POSIX ASCII" - for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ - en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ - en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ - es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ - et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ - fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ - it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ - sv_FI sv_SE; do - echo "$l ISO-8859-1" - echo "$l.iso-8859-1 ISO-8859-1" - echo "$l.iso-8859-15 ISO-8859-15" - echo "$l.iso-8859-15@euro ISO-8859-15" - echo "$l@euro ISO-8859-15" - echo "$l.cp-437 CP437" - echo "$l.cp-850 CP850" - echo "$l.cp-1252 CP1252" - echo "$l.cp-1252@euro CP1252" - #echo "$l.atari-st ATARI-ST" # not a commonly used encoding - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ - sl_SI sr sr_CS sr_YU; do - echo "$l ISO-8859-2" - echo "$l.iso-8859-2 ISO-8859-2" - echo "$l.cp-852 CP852" - echo "$l.cp-1250 CP1250" - echo "$l.utf-8 UTF-8" - done - for l in mk mk_MK ru ru_RU; do - echo "$l ISO-8859-5" - echo "$l.iso-8859-5 ISO-8859-5" - echo "$l.koi8-r KOI8-R" - echo "$l.cp-866 CP866" - echo "$l.cp-1251 CP1251" - echo "$l.utf-8 UTF-8" - done - for l in ar ar_SA; do - echo "$l ISO-8859-6" - echo "$l.iso-8859-6 ISO-8859-6" - echo "$l.cp-864 CP864" - #echo "$l.cp-868 CP868" # not a commonly used encoding - echo "$l.cp-1256 CP1256" - echo "$l.utf-8 UTF-8" - done - for l in el el_GR gr gr_GR; do - echo "$l ISO-8859-7" - echo "$l.iso-8859-7 ISO-8859-7" - echo "$l.cp-869 CP869" - echo "$l.cp-1253 CP1253" - echo "$l.cp-1253@euro CP1253" - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in he he_IL iw iw_IL; do - echo "$l ISO-8859-8" - echo "$l.iso-8859-8 ISO-8859-8" - echo "$l.cp-862 CP862" - echo "$l.cp-1255 CP1255" - echo "$l.utf-8 UTF-8" - done - for l in tr tr_TR; do - echo "$l ISO-8859-9" - echo "$l.iso-8859-9 ISO-8859-9" - echo "$l.cp-857 CP857" - echo "$l.cp-1254 CP1254" - echo "$l.utf-8 UTF-8" - done - for l in lt lt_LT lv lv_LV; do - #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name - echo "$l ISO-8859-13" - done - for l in ru_UA uk uk_UA; do - echo "$l KOI8-U" - done - for l in zh zh_CN; do - #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name - echo "$l GB2312" - done - for l in ja ja_JP ja_JP.EUC; do - echo "$l EUC-JP" - done - for l in ko ko_KR; do - echo "$l EUC-KR" - done - for l in th th_TH; do - echo "$l TIS-620" - done - for l in fa fa_IR; do - #echo "$l ISIRI-3342" # a broken encoding - echo "$l.utf-8 UTF-8" - done - ;; - linux* | *-gnu*) - # With glibc-2.1 or newer, we don't need any canonicalization, - # because glibc has iconv and both glibc and libiconv support all - # GNU canonical names directly. Therefore, the Makefile does not - # need to install the alias file at all. - # The following applies only to glibc-2.0.x and older libcs. - echo "ISO_646.IRV:1983 ASCII" - ;; - aix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "IBM-850 CP850" - echo "IBM-856 CP856" - echo "IBM-921 ISO-8859-13" - echo "IBM-922 CP922" - echo "IBM-932 CP932" - echo "IBM-943 CP943" - echo "IBM-1046 CP1046" - echo "IBM-1124 CP1124" - echo "IBM-1129 CP1129" - echo "IBM-1252 CP1252" - echo "IBM-eucCN GB2312" - echo "IBM-eucJP EUC-JP" - echo "IBM-eucKR EUC-KR" - echo "IBM-eucTW EUC-TW" - echo "big5 BIG5" - echo "GBK GBK" - echo "TIS-620 TIS-620" - echo "UTF-8 UTF-8" - ;; - hpux*) - echo "iso88591 ISO-8859-1" - echo "iso88592 ISO-8859-2" - echo "iso88595 ISO-8859-5" - echo "iso88596 ISO-8859-6" - echo "iso88597 ISO-8859-7" - echo "iso88598 ISO-8859-8" - echo "iso88599 ISO-8859-9" - echo "iso885915 ISO-8859-15" - echo "roman8 HP-ROMAN8" - echo "arabic8 HP-ARABIC8" - echo "greek8 HP-GREEK8" - echo "hebrew8 HP-HEBREW8" - echo "turkish8 HP-TURKISH8" - echo "kana8 HP-KANA8" - echo "tis620 TIS-620" - echo "big5 BIG5" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "hp15CN GB2312" - #echo "ccdc ?" # what is this? - echo "SJIS SHIFT_JIS" - echo "utf8 UTF-8" - ;; - irix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - ;; - osf*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "cp850 CP850" - echo "big5 BIG5" - echo "dechanyu DEC-HANYU" - echo "dechanzi GB2312" - echo "deckanji DEC-KANJI" - echo "deckorean EUC-KR" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "GBK GBK" - echo "KSC5601 CP949" - echo "sdeckanji EUC-JP" - echo "SJIS SHIFT_JIS" - echo "TACTIS TIS-620" - echo "UTF-8 UTF-8" - ;; - solaris*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-3 ISO-8859-3" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "koi8-r KOI8-R" - echo "ansi-1251 CP1251" - echo "BIG5 BIG5" - echo "Big5-HKSCS BIG5-HKSCS" - echo "gb2312 GB2312" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "cns11643 EUC-TW" - echo "5601 EUC-KR" - echo "ko_KR.johap92 JOHAB" - echo "eucJP EUC-JP" - echo "PCK SHIFT_JIS" - echo "TIS620.2533 TIS-620" - #echo "sun_eu_greek ?" # what is this? - echo "UTF-8 UTF-8" - ;; - freebsd*) - # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "US-ASCII ASCII" - for l in la_LN lt_LN; do - echo "$l.ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ - lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do - echo "$l.ISO_8859-1 ISO-8859-1" - echo "$l.DIS_8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do - echo "$l.ISO_8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO_8859-4 ISO-8859-4" - done - for l in ru_RU ru_SU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO_8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ja_JP.Shift_JIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - netbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "BIG5 BIG5" - echo "SJIS SHIFT_JIS" - ;; - openbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - ;; - darwin[56]*) - # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - for l in en_AU en_CA en_GB en_US la_LN; do - echo "$l.US-ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ - nl_NL no_NO pt_PT sv_SE; do - echo "$l ISO-8859-1" - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in la_LN; do - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do - echo "$l.ISO8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO8859-4 ISO-8859-4" - done - for l in ru_RU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - for l in bg_BG; do - echo "$l.CP1251 CP1251" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - darwin*) - # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is - # useless: - # - It returns the empty string when LANG is set to a locale of the - # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 - # LC_CTYPE file. - # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by - # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - # - The documentation says: - # "... all code that calls BSD system routines should ensure - # that the const *char parameters of these routines are in UTF-8 - # encoding. All BSD system functions expect their string - # parameters to be in UTF-8 encoding and nothing else." - # It also says - # "An additional caveat is that string parameters for files, - # paths, and other file-system entities must be in canonical - # UTF-8. In a canonical UTF-8 Unicode string, all decomposable - # characters are decomposed ..." - # but this is not true: You can pass non-decomposed UTF-8 strings - # to file system functions, and it is the OS which will convert - # them to decomposed UTF-8 before accessing the file system. - # - The Apple Terminal application displays UTF-8 by default. - # - However, other applications are free to use different encodings: - # - xterm uses ISO-8859-1 by default. - # - TextEdit uses MacRoman by default. - # We prefer UTF-8 over decomposed UTF-8-MAC because one should - # minimize the use of decomposed Unicode. Unfortunately, through the - # Darwin file system, decomposed UTF-8 strings are leaked into user - # space nevertheless. - # Then there are also the locales with encodings other than US-ASCII - # and UTF-8. These locales can be occasionally useful to users (e.g. - # when grepping through ISO-8859-1 encoded text files), when all their - # file names are in US-ASCII. - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "KOI8-R KOI8-R" - echo "KOI8-U KOI8-U" - echo "CP866 CP866" - echo "CP949 CP949" - echo "CP1131 CP1131" - echo "CP1251 CP1251" - echo "eucCN GB2312" - echo "GB2312 GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "Big5 BIG5" - echo "Big5HKSCS BIG5-HKSCS" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "SJIS SHIFT_JIS" - echo "ARMSCII-8 ARMSCII-8" - echo "PT154 PT154" - #echo "ISCII-DEV ?" - echo "* UTF-8" - ;; - beos* | haiku*) - # BeOS and Haiku have a single locale, and it has UTF-8 encoding. - echo "* UTF-8" - ;; - msdosdjgpp*) - # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "#" - echo "# The encodings given here may not all be correct." - echo "# If you find that the encoding given for your language and" - echo "# country is not the one your DOS machine actually uses, just" - echo "# correct it in this file, and send a mail to" - echo "# Juan Manuel Guerrero " - echo "# and Bruno Haible ." - echo "#" - echo "C ASCII" - # ISO-8859-1 languages - echo "ca CP850" - echo "ca_ES CP850" - echo "da CP865" # not CP850 ?? - echo "da_DK CP865" # not CP850 ?? - echo "de CP850" - echo "de_AT CP850" - echo "de_CH CP850" - echo "de_DE CP850" - echo "en CP850" - echo "en_AU CP850" # not CP437 ?? - echo "en_CA CP850" - echo "en_GB CP850" - echo "en_NZ CP437" - echo "en_US CP437" - echo "en_ZA CP850" # not CP437 ?? - echo "es CP850" - echo "es_AR CP850" - echo "es_BO CP850" - echo "es_CL CP850" - echo "es_CO CP850" - echo "es_CR CP850" - echo "es_CU CP850" - echo "es_DO CP850" - echo "es_EC CP850" - echo "es_ES CP850" - echo "es_GT CP850" - echo "es_HN CP850" - echo "es_MX CP850" - echo "es_NI CP850" - echo "es_PA CP850" - echo "es_PY CP850" - echo "es_PE CP850" - echo "es_SV CP850" - echo "es_UY CP850" - echo "es_VE CP850" - echo "et CP850" - echo "et_EE CP850" - echo "eu CP850" - echo "eu_ES CP850" - echo "fi CP850" - echo "fi_FI CP850" - echo "fr CP850" - echo "fr_BE CP850" - echo "fr_CA CP850" - echo "fr_CH CP850" - echo "fr_FR CP850" - echo "ga CP850" - echo "ga_IE CP850" - echo "gd CP850" - echo "gd_GB CP850" - echo "gl CP850" - echo "gl_ES CP850" - echo "id CP850" # not CP437 ?? - echo "id_ID CP850" # not CP437 ?? - echo "is CP861" # not CP850 ?? - echo "is_IS CP861" # not CP850 ?? - echo "it CP850" - echo "it_CH CP850" - echo "it_IT CP850" - echo "lt CP775" - echo "lt_LT CP775" - echo "lv CP775" - echo "lv_LV CP775" - echo "nb CP865" # not CP850 ?? - echo "nb_NO CP865" # not CP850 ?? - echo "nl CP850" - echo "nl_BE CP850" - echo "nl_NL CP850" - echo "nn CP865" # not CP850 ?? - echo "nn_NO CP865" # not CP850 ?? - echo "no CP865" # not CP850 ?? - echo "no_NO CP865" # not CP850 ?? - echo "pt CP850" - echo "pt_BR CP850" - echo "pt_PT CP850" - echo "sv CP850" - echo "sv_SE CP850" - # ISO-8859-2 languages - echo "cs CP852" - echo "cs_CZ CP852" - echo "hr CP852" - echo "hr_HR CP852" - echo "hu CP852" - echo "hu_HU CP852" - echo "pl CP852" - echo "pl_PL CP852" - echo "ro CP852" - echo "ro_RO CP852" - echo "sk CP852" - echo "sk_SK CP852" - echo "sl CP852" - echo "sl_SI CP852" - echo "sq CP852" - echo "sq_AL CP852" - echo "sr CP852" # CP852 or CP866 or CP855 ?? - echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? - echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? - # ISO-8859-3 languages - echo "mt CP850" - echo "mt_MT CP850" - # ISO-8859-5 languages - echo "be CP866" - echo "be_BE CP866" - echo "bg CP866" # not CP855 ?? - echo "bg_BG CP866" # not CP855 ?? - echo "mk CP866" # not CP855 ?? - echo "mk_MK CP866" # not CP855 ?? - echo "ru CP866" - echo "ru_RU CP866" - echo "uk CP1125" - echo "uk_UA CP1125" - # ISO-8859-6 languages - echo "ar CP864" - echo "ar_AE CP864" - echo "ar_DZ CP864" - echo "ar_EG CP864" - echo "ar_IQ CP864" - echo "ar_IR CP864" - echo "ar_JO CP864" - echo "ar_KW CP864" - echo "ar_MA CP864" - echo "ar_OM CP864" - echo "ar_QA CP864" - echo "ar_SA CP864" - echo "ar_SY CP864" - # ISO-8859-7 languages - echo "el CP869" - echo "el_GR CP869" - # ISO-8859-8 languages - echo "he CP862" - echo "he_IL CP862" - # ISO-8859-9 languages - echo "tr CP857" - echo "tr_TR CP857" - # Japanese - echo "ja CP932" - echo "ja_JP CP932" - # Chinese - echo "zh_CN GBK" - echo "zh_TW CP950" # not CP938 ?? - # Korean - echo "kr CP949" # not CP934 ?? - echo "kr_KR CP949" # not CP934 ?? - # Thai - echo "th CP874" - echo "th_TH CP874" - # Other - echo "eo CP850" - echo "eo_EO CP850" - ;; -esac diff --git a/lib/crc.c b/lib/crc.c index c43192c..29c6afb 100644 --- a/lib/crc.c +++ b/lib/crc.c @@ -1,5 +1,5 @@ /* crc.c -- cyclic redundancy checks - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program. If not, see . */ /* Written by Simon Josefsson. */ diff --git a/lib/crc.h b/lib/crc.h index 0f60f4f..c842f25 100644 --- a/lib/crc.h +++ b/lib/crc.h @@ -1,5 +1,5 @@ /* crc.h -- cyclic redundancy checks - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program. If not, see . */ /* Written by Simon Josefsson. */ diff --git a/lib/getopt-cdefs.in.h b/lib/getopt-cdefs.in.h index c71a4f1..049145b 100644 --- a/lib/getopt-cdefs.in.h +++ b/lib/getopt-cdefs.in.h @@ -1,22 +1,22 @@ /* getopt-on-non-glibc compatibility macros. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. - gnulib is free software; you can redistribute it and/or modify it + This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - gnulib is distributed in the hope that it will be useful, but + This file 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 gnulib; if not, see - . */ + . */ #ifndef _GETOPT_CDEFS_H #define _GETOPT_CDEFS_H 1 diff --git a/lib/getopt-core.h b/lib/getopt-core.h index d315891..6360ad6 100644 --- a/lib/getopt-core.h +++ b/lib/getopt-core.h @@ -1,5 +1,5 @@ /* Declarations for getopt (basic, portable features only). - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GETOPT_CORE_H #define _GETOPT_CORE_H 1 diff --git a/lib/getopt-ext.h b/lib/getopt-ext.h index e4da22f..13cb007 100644 --- a/lib/getopt-ext.h +++ b/lib/getopt-ext.h @@ -1,5 +1,5 @@ /* Declarations for getopt (GNU extensions). - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GETOPT_EXT_H #define _GETOPT_EXT_H 1 diff --git a/lib/getopt-pfx-core.h b/lib/getopt-pfx-core.h index db5f15c..8fac269 100644 --- a/lib/getopt-pfx-core.h +++ b/lib/getopt-pfx-core.h @@ -1,22 +1,22 @@ /* getopt (basic, portable features) gnulib wrapper header. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. - gnulib is free software; you can redistribute it and/or modify it + This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - gnulib is distributed in the hope that it will be useful, but + This file 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 gnulib; if not, see - . */ + . */ #ifndef _GETOPT_PFX_CORE_H #define _GETOPT_PFX_CORE_H 1 diff --git a/lib/getopt-pfx-ext.h b/lib/getopt-pfx-ext.h index 91f4df1..0e21aef 100644 --- a/lib/getopt-pfx-ext.h +++ b/lib/getopt-pfx-ext.h @@ -1,22 +1,22 @@ /* getopt (GNU extensions) gnulib wrapper header. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. - gnulib is free software; you can redistribute it and/or modify it + This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - gnulib is distributed in the hope that it will be useful, but + This file 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 gnulib; if not, see - . */ + . */ #ifndef _GETOPT_PFX_EXT_H #define _GETOPT_PFX_EXT_H 1 diff --git a/lib/getopt.c b/lib/getopt.c index 9a2867d..8ee075a 100644 --- a/lib/getopt.c +++ b/lib/getopt.c @@ -1,5 +1,5 @@ /* Getopt for GNU. - Copyright (C) 1987-2017 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC # include @@ -46,7 +46,7 @@ /* When used standalone, flockfile and funlockfile might not be available. */ # if (!defined _POSIX_THREAD_SAFE_FUNCTIONS \ - || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + || (defined _WIN32 && ! defined __CYGWIN__)) # define flockfile(fp) /* nop */ # define funlockfile(fp) /* nop */ # endif diff --git a/lib/getopt.in.h b/lib/getopt.in.h index 4ce1eb4..c77f34c 100644 --- a/lib/getopt.in.h +++ b/lib/getopt.in.h @@ -1,22 +1,22 @@ /* Declarations for getopt. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library, which supplies a different version of this file. - gnulib is free software; you can redistribute it and/or modify it + This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - gnulib is distributed in the hope that it will be useful, but + This file 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 gnulib; if not, see . */ + License along with gnulib; if not, see . */ #ifndef _@GUARD_PREFIX@_GETOPT_H diff --git a/lib/getopt1.c b/lib/getopt1.c index 2bc5926..883aa6b 100644 --- a/lib/getopt1.c +++ b/lib/getopt1.c @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987-2017 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC # include diff --git a/lib/getopt_int.h b/lib/getopt_int.h index a556219..e63706f 100644 --- a/lib/getopt_int.h +++ b/lib/getopt_int.h @@ -1,5 +1,5 @@ /* Internal declarations for getopt. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GETOPT_INT_H #define _GETOPT_INT_H 1 diff --git a/lib/gettext.h b/lib/gettext.h index 742ce37..c7c0fdb 100644 --- a/lib/gettext.h +++ b/lib/gettext.h @@ -1,5 +1,5 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 @@ -184,9 +184,16 @@ npgettext_aux (const char *domain, #include -#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ - /* || __STDC_VERSION__ == 199901L - || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ) +/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. + This relates to the -Wvla and -Wvla-larger-than warnings, enabled in + the default GCC many warnings set. This allows programs to disable use + of VLAs, which may be unintended, or may be awkward to support portably, + or may have security implications due to non-deterministic stack usage. */ + +#if (!defined GNULIB_NO_VLA \ + && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ + /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc) + || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 diff --git a/lib/gettimeofday.c b/lib/gettimeofday.c index 8ae7622..e728bf4 100644 --- a/lib/gettimeofday.c +++ b/lib/gettimeofday.c @@ -1,6 +1,6 @@ /* Provide gettimeofday for systems that don't have it or for which it's broken. - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ /* written by Jim Meyering */ @@ -24,7 +24,7 @@ #include -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE # include #endif @@ -33,6 +33,10 @@ #ifdef WINDOWS_NATIVE +/* Avoid warnings from gcc -Wcast-function-type. */ +# define GetProcAddress \ + (void *) GetProcAddress + /* GetSystemTimePreciseAsFileTime was introduced only in Windows 8. */ typedef void (WINAPI * GetSystemTimePreciseAsFileTimeFuncType) (FILETIME *lpTime); static GetSystemTimePreciseAsFileTimeFuncType GetSystemTimePreciseAsFileTimeFunc = NULL; @@ -45,7 +49,7 @@ initialize (void) if (kernel32 != NULL) { GetSystemTimePreciseAsFileTimeFunc = - (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime"); + (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime"); } initialized = TRUE; } @@ -68,10 +72,10 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz) /* On native Windows, there are two ways to get the current time: GetSystemTimeAsFileTime - + or GetSystemTimePreciseAsFileTime - . + . GetSystemTimeAsFileTime produces values that jump by increments of 15.627 milliseconds (!) on average. Whereas GetSystemTimePreciseAsFileTime values usually jump by 1 or 2 @@ -88,7 +92,7 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz) GetSystemTimeAsFileTime (¤t_time); /* Convert from FILETIME to 'struct timeval'. */ - /* FILETIME: */ + /* FILETIME: */ ULONGLONG since_1601 = ((ULONGLONG) current_time.dwHighDateTime << 32) | (ULONGLONG) current_time.dwLowDateTime; diff --git a/lib/glthread/.gitignore b/lib/glthread/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/lib/glthread/lock.c b/lib/glthread/lock.c new file mode 100644 index 0000000..fefcd59 --- /dev/null +++ b/lib/glthread/lock.c @@ -0,0 +1,506 @@ +/* Locking in multithreaded situations. + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-posix.h, gthr-posix95.h. */ + +#include + +#include "glthread/lock.h" + +/* ========================================================================= */ + +#if USE_POSIX_THREADS + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) + +# ifdef PTHREAD_RWLOCK_INITIALIZER + +# if !HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER + /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ + +int +glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock) +{ + pthread_rwlockattr_t attributes; + int err; + + err = pthread_rwlockattr_init (&attributes); + if (err != 0) + return err; + /* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that + causes the writer to be preferred. PTHREAD_RWLOCK_PREFER_WRITER_NP does not + do this; see + http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html */ + err = pthread_rwlockattr_setkind_np (&attributes, + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); + if (err == 0) + err = pthread_rwlock_init(lock, &attributes); + /* pthread_rwlockattr_destroy always returns 0. It cannot influence the + return value. */ + pthread_rwlockattr_destroy (&attributes); + return err; +} + +# endif +# else + +int +glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_rwlock_init (&lock->rwlock, NULL); + if (err != 0) + return err; + lock->initialized = 1; + return 0; +} + +int +glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) +{ + if (!lock->initialized) + { + int err; + + err = pthread_mutex_lock (&lock->guard); + if (err != 0) + return err; + if (!lock->initialized) + { + err = glthread_rwlock_init_multithreaded (lock); + if (err != 0) + { + pthread_mutex_unlock (&lock->guard); + return err; + } + } + err = pthread_mutex_unlock (&lock->guard); + if (err != 0) + return err; + } + return pthread_rwlock_rdlock (&lock->rwlock); +} + +int +glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) +{ + if (!lock->initialized) + { + int err; + + err = pthread_mutex_lock (&lock->guard); + if (err != 0) + return err; + if (!lock->initialized) + { + err = glthread_rwlock_init_multithreaded (lock); + if (err != 0) + { + pthread_mutex_unlock (&lock->guard); + return err; + } + } + err = pthread_mutex_unlock (&lock->guard); + if (err != 0) + return err; + } + return pthread_rwlock_wrlock (&lock->rwlock); +} + +int +glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) +{ + if (!lock->initialized) + return EINVAL; + return pthread_rwlock_unlock (&lock->rwlock); +} + +int +glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) +{ + int err; + + if (!lock->initialized) + return EINVAL; + err = pthread_rwlock_destroy (&lock->rwlock); + if (err != 0) + return err; + lock->initialized = 0; + return 0; +} + +# endif + +# else + +int +glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_mutex_init (&lock->lock, NULL); + if (err != 0) + return err; + err = pthread_cond_init (&lock->waiting_readers, NULL); + if (err != 0) + return err; + err = pthread_cond_init (&lock->waiting_writers, NULL); + if (err != 0) + return err; + lock->waiting_writers_count = 0; + lock->runcount = 0; + return 0; +} + +int +glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_mutex_lock (&lock->lock); + if (err != 0) + return err; + /* Test whether only readers are currently running, and whether the runcount + field will not overflow, and whether no writer is waiting. The latter + condition is because POSIX recommends that "write locks shall take + precedence over read locks", to avoid "writer starvation". */ + while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_readers. */ + err = pthread_cond_wait (&lock->waiting_readers, &lock->lock); + if (err != 0) + { + pthread_mutex_unlock (&lock->lock); + return err; + } + } + lock->runcount++; + return pthread_mutex_unlock (&lock->lock); +} + +int +glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_mutex_lock (&lock->lock); + if (err != 0) + return err; + /* Test whether no readers or writers are currently running. */ + while (!(lock->runcount == 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_writers. */ + lock->waiting_writers_count++; + err = pthread_cond_wait (&lock->waiting_writers, &lock->lock); + if (err != 0) + { + lock->waiting_writers_count--; + pthread_mutex_unlock (&lock->lock); + return err; + } + lock->waiting_writers_count--; + } + lock->runcount--; /* runcount becomes -1 */ + return pthread_mutex_unlock (&lock->lock); +} + +int +glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_mutex_lock (&lock->lock); + if (err != 0) + return err; + if (lock->runcount < 0) + { + /* Drop a writer lock. */ + if (!(lock->runcount == -1)) + { + pthread_mutex_unlock (&lock->lock); + return EINVAL; + } + lock->runcount = 0; + } + else + { + /* Drop a reader lock. */ + if (!(lock->runcount > 0)) + { + pthread_mutex_unlock (&lock->lock); + return EINVAL; + } + lock->runcount--; + } + if (lock->runcount == 0) + { + /* POSIX recommends that "write locks shall take precedence over read + locks", to avoid "writer starvation". */ + if (lock->waiting_writers_count > 0) + { + /* Wake up one of the waiting writers. */ + err = pthread_cond_signal (&lock->waiting_writers); + if (err != 0) + { + pthread_mutex_unlock (&lock->lock); + return err; + } + } + else + { + /* Wake up all waiting readers. */ + err = pthread_cond_broadcast (&lock->waiting_readers); + if (err != 0) + { + pthread_mutex_unlock (&lock->lock); + return err; + } + } + } + return pthread_mutex_unlock (&lock->lock); +} + +int +glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) +{ + int err; + + err = pthread_mutex_destroy (&lock->lock); + if (err != 0) + return err; + err = pthread_cond_destroy (&lock->waiting_readers); + if (err != 0) + return err; + err = pthread_cond_destroy (&lock->waiting_writers); + if (err != 0) + return err; + return 0; +} + +# endif + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +# if HAVE_PTHREAD_MUTEX_RECURSIVE + +# if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + +int +glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) +{ + pthread_mutexattr_t attributes; + int err; + + err = pthread_mutexattr_init (&attributes); + if (err != 0) + return err; + err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); + if (err != 0) + { + pthread_mutexattr_destroy (&attributes); + return err; + } + err = pthread_mutex_init (lock, &attributes); + if (err != 0) + { + pthread_mutexattr_destroy (&attributes); + return err; + } + err = pthread_mutexattr_destroy (&attributes); + if (err != 0) + return err; + return 0; +} + +# else + +int +glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) +{ + pthread_mutexattr_t attributes; + int err; + + err = pthread_mutexattr_init (&attributes); + if (err != 0) + return err; + err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); + if (err != 0) + { + pthread_mutexattr_destroy (&attributes); + return err; + } + err = pthread_mutex_init (&lock->recmutex, &attributes); + if (err != 0) + { + pthread_mutexattr_destroy (&attributes); + return err; + } + err = pthread_mutexattr_destroy (&attributes); + if (err != 0) + return err; + lock->initialized = 1; + return 0; +} + +int +glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) +{ + if (!lock->initialized) + { + int err; + + err = pthread_mutex_lock (&lock->guard); + if (err != 0) + return err; + if (!lock->initialized) + { + err = glthread_recursive_lock_init_multithreaded (lock); + if (err != 0) + { + pthread_mutex_unlock (&lock->guard); + return err; + } + } + err = pthread_mutex_unlock (&lock->guard); + if (err != 0) + return err; + } + return pthread_mutex_lock (&lock->recmutex); +} + +int +glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) +{ + if (!lock->initialized) + return EINVAL; + return pthread_mutex_unlock (&lock->recmutex); +} + +int +glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) +{ + int err; + + if (!lock->initialized) + return EINVAL; + err = pthread_mutex_destroy (&lock->recmutex); + if (err != 0) + return err; + lock->initialized = 0; + return 0; +} + +# endif + +# else + +int +glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) +{ + int err; + + err = pthread_mutex_init (&lock->mutex, NULL); + if (err != 0) + return err; + lock->owner = (pthread_t) 0; + lock->depth = 0; + return 0; +} + +int +glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) +{ + pthread_t self = pthread_self (); + if (lock->owner != self) + { + int err; + + err = pthread_mutex_lock (&lock->mutex); + if (err != 0) + return err; + lock->owner = self; + } + if (++(lock->depth) == 0) /* wraparound? */ + { + lock->depth--; + return EAGAIN; + } + return 0; +} + +int +glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) +{ + if (lock->owner != pthread_self ()) + return EPERM; + if (lock->depth == 0) + return EINVAL; + if (--(lock->depth) == 0) + { + lock->owner = (pthread_t) 0; + return pthread_mutex_unlock (&lock->mutex); + } + else + return 0; +} + +int +glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) +{ + if (lock->owner != (pthread_t) 0) + return EBUSY; + return pthread_mutex_destroy (&lock->mutex); +} + +# endif + +/* -------------------------- gl_once_t datatype -------------------------- */ + +static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT; + +int +glthread_once_singlethreaded (pthread_once_t *once_control) +{ + /* We don't know whether pthread_once_t is an integer type, a floating-point + type, a pointer type, or a structure type. */ + char *firstbyte = (char *)once_control; + if (*firstbyte == *(const char *)&fresh_once) + { + /* First time use of once_control. Invert the first byte. */ + *firstbyte = ~ *(const char *)&fresh_once; + return 1; + } + else + return 0; +} + +#endif + +/* ========================================================================= */ + +#if USE_WINDOWS_THREADS + +#endif + +/* ========================================================================= */ diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h new file mode 100644 index 0000000..a92c2a8 --- /dev/null +++ b/lib/glthread/lock.h @@ -0,0 +1,666 @@ +/* Locking in multithreaded situations. + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ + +/* This file contains locking primitives for use with a given thread library. + It does not contain primitives for creating threads or for other + synchronization primitives. + + Normal (non-recursive) locks: + Type: gl_lock_t + Declaration: gl_lock_define(extern, name) + Initializer: gl_lock_define_initialized(, name) + Initialization: gl_lock_init (name); + Taking the lock: gl_lock_lock (name); + Releasing the lock: gl_lock_unlock (name); + De-initialization: gl_lock_destroy (name); + Equivalent functions with control of error handling: + Initialization: err = glthread_lock_init (&name); + Taking the lock: err = glthread_lock_lock (&name); + Releasing the lock: err = glthread_lock_unlock (&name); + De-initialization: err = glthread_lock_destroy (&name); + + Read-Write (non-recursive) locks: + Type: gl_rwlock_t + Declaration: gl_rwlock_define(extern, name) + Initializer: gl_rwlock_define_initialized(, name) + Initialization: gl_rwlock_init (name); + Taking the lock: gl_rwlock_rdlock (name); + gl_rwlock_wrlock (name); + Releasing the lock: gl_rwlock_unlock (name); + De-initialization: gl_rwlock_destroy (name); + Equivalent functions with control of error handling: + Initialization: err = glthread_rwlock_init (&name); + Taking the lock: err = glthread_rwlock_rdlock (&name); + err = glthread_rwlock_wrlock (&name); + Releasing the lock: err = glthread_rwlock_unlock (&name); + De-initialization: err = glthread_rwlock_destroy (&name); + + Recursive locks: + Type: gl_recursive_lock_t + Declaration: gl_recursive_lock_define(extern, name) + Initializer: gl_recursive_lock_define_initialized(, name) + Initialization: gl_recursive_lock_init (name); + Taking the lock: gl_recursive_lock_lock (name); + Releasing the lock: gl_recursive_lock_unlock (name); + De-initialization: gl_recursive_lock_destroy (name); + Equivalent functions with control of error handling: + Initialization: err = glthread_recursive_lock_init (&name); + Taking the lock: err = glthread_recursive_lock_lock (&name); + Releasing the lock: err = glthread_recursive_lock_unlock (&name); + De-initialization: err = glthread_recursive_lock_destroy (&name); + + Once-only execution: + Type: gl_once_t + Initializer: gl_once_define(extern, name) + Execution: gl_once (name, initfunction); + Equivalent functions with control of error handling: + Execution: err = glthread_once (&name, initfunction); +*/ + + +#ifndef _LOCK_H +#define _LOCK_H + +#include +#include + +#if !defined c11_threads_in_use +# if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK +# include +# pragma weak thrd_exit +# define c11_threads_in_use() (thrd_exit != NULL) +# else +# define c11_threads_in_use() 0 +# endif +#endif + +/* ========================================================================= */ + +#if USE_POSIX_THREADS + +/* Use the POSIX threads library. */ + +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# if PTHREAD_IN_USE_DETECTION_HARD + +/* The pthread_in_use() detection needs to be done at runtime. */ +# define pthread_in_use() \ + glthread_in_use () +extern int glthread_in_use (void); + +# endif + +# if USE_POSIX_THREADS_WEAK + +/* Use weak references to the POSIX threads library. */ + +/* Weak references avoid dragging in external libraries if the other parts + of the program don't use them. Here we use them, because we don't want + every program that uses libintl to depend on libpthread. This assumes + that libpthread would not be loaded after libintl; i.e. if libintl is + loaded first, by an executable that does not depend on libpthread, and + then a module is dynamically loaded that depends on libpthread, libintl + will not be multithread-safe. */ + +/* The way to test at runtime whether libpthread is present is to test + whether a function pointer's value, such as &pthread_mutex_init, is + non-NULL. However, some versions of GCC have a bug through which, in + PIC mode, &foo != NULL always evaluates to true if there is a direct + call to foo(...) in the same function. To avoid this, we test the + address of a function in libpthread that we don't use. */ + +# pragma weak pthread_mutex_init +# pragma weak pthread_mutex_lock +# pragma weak pthread_mutex_unlock +# pragma weak pthread_mutex_destroy +# pragma weak pthread_rwlock_init +# pragma weak pthread_rwlock_rdlock +# pragma weak pthread_rwlock_wrlock +# pragma weak pthread_rwlock_unlock +# pragma weak pthread_rwlock_destroy +# pragma weak pthread_once +# pragma weak pthread_cond_init +# pragma weak pthread_cond_wait +# pragma weak pthread_cond_signal +# pragma weak pthread_cond_broadcast +# pragma weak pthread_cond_destroy +# pragma weak pthread_mutexattr_init +# pragma weak pthread_mutexattr_settype +# pragma weak pthread_mutexattr_destroy +# pragma weak pthread_rwlockattr_init +# if __GNU_LIBRARY__ > 1 +# pragma weak pthread_rwlockattr_setkind_np +# endif +# pragma weak pthread_rwlockattr_destroy +# ifndef pthread_self +# pragma weak pthread_self +# endif + +# if !PTHREAD_IN_USE_DETECTION_HARD + /* Considering all platforms with USE_POSIX_THREADS_WEAK, only few symbols + can be used to determine whether libpthread is in use. These are: + pthread_mutexattr_gettype + pthread_rwlockattr_destroy + pthread_rwlockattr_init + */ +# pragma weak pthread_mutexattr_gettype +# define pthread_in_use() \ + (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) +# endif + +# else + +# if !PTHREAD_IN_USE_DETECTION_HARD +# define pthread_in_use() 1 +# endif + +# endif + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +typedef pthread_mutex_t gl_lock_t; +# define gl_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS pthread_mutex_t NAME; +# define gl_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; +# define gl_lock_initializer \ + PTHREAD_MUTEX_INITIALIZER +# define glthread_lock_init(LOCK) \ + (pthread_in_use () ? pthread_mutex_init (LOCK, NULL) : 0) +# define glthread_lock_lock(LOCK) \ + (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) +# define glthread_lock_unlock(LOCK) \ + (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) +# define glthread_lock_destroy(LOCK) \ + (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) + +# ifdef PTHREAD_RWLOCK_INITIALIZER + +typedef pthread_rwlock_t gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS pthread_rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; +# if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER +# define gl_rwlock_initializer \ + PTHREAD_RWLOCK_INITIALIZER +# define glthread_rwlock_init(LOCK) \ + (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) +# else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ +# define gl_rwlock_initializer \ + PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP +# define glthread_rwlock_init(LOCK) \ + (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0) +extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock); +# endif +# define glthread_rwlock_rdlock(LOCK) \ + (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) +# define glthread_rwlock_wrlock(LOCK) \ + (pthread_in_use () ? pthread_rwlock_wrlock (LOCK) : 0) +# define glthread_rwlock_unlock(LOCK) \ + (pthread_in_use () ? pthread_rwlock_unlock (LOCK) : 0) +# define glthread_rwlock_destroy(LOCK) \ + (pthread_in_use () ? pthread_rwlock_destroy (LOCK) : 0) + +# else + +typedef struct + { + int initialized; + pthread_mutex_t guard; /* protects the initialization */ + pthread_rwlock_t rwlock; /* read-write lock */ + } + gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; +# define gl_rwlock_initializer \ + { 0, PTHREAD_MUTEX_INITIALIZER } +# define glthread_rwlock_init(LOCK) \ + (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) +# define glthread_rwlock_rdlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_wrlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_unlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_destroy(LOCK) \ + (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) +extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); + +# endif + +# else + +typedef struct + { + pthread_mutex_t lock; /* protects the remaining fields */ + pthread_cond_t waiting_readers; /* waiting readers */ + pthread_cond_t waiting_writers; /* waiting writers */ + unsigned int waiting_writers_count; /* number of waiting writers */ + int runcount; /* number of readers running, or -1 when a writer runs */ + } + gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; +# define gl_rwlock_initializer \ + { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } +# define glthread_rwlock_init(LOCK) \ + (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) +# define glthread_rwlock_rdlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_wrlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_unlock(LOCK) \ + (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) +# define glthread_rwlock_destroy(LOCK) \ + (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) +extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); +extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); + +# endif + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +# if HAVE_PTHREAD_MUTEX_RECURSIVE + +# if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + +typedef pthread_mutex_t gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS pthread_mutex_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; +# ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER +# define gl_recursive_lock_initializer \ + PTHREAD_RECURSIVE_MUTEX_INITIALIZER +# else +# define gl_recursive_lock_initializer \ + PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +# endif +# define glthread_recursive_lock_init(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_lock(LOCK) \ + (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) +# define glthread_recursive_lock_unlock(LOCK) \ + (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) +# define glthread_recursive_lock_destroy(LOCK) \ + (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) +extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); + +# else + +typedef struct + { + pthread_mutex_t recmutex; /* recursive mutex */ + pthread_mutex_t guard; /* protects the initialization */ + int initialized; + } + gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; +# define gl_recursive_lock_initializer \ + { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } +# define glthread_recursive_lock_init(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_lock(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_unlock(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_destroy(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) +extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); + +# endif + +# else + +/* Old versions of POSIX threads on Solaris did not have recursive locks. + We have to implement them ourselves. */ + +typedef struct + { + pthread_mutex_t mutex; + pthread_t owner; + unsigned long depth; + } + gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; +# define gl_recursive_lock_initializer \ + { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } +# define glthread_recursive_lock_init(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_lock(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_unlock(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_destroy(LOCK) \ + (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) +extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); + +# endif + +/* -------------------------- gl_once_t datatype -------------------------- */ + +typedef pthread_once_t gl_once_t; +# define gl_once_define(STORAGECLASS, NAME) \ + STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (pthread_in_use () \ + ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ + : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) +extern int glthread_once_singlethreaded (pthread_once_t *once_control); + +# ifdef __cplusplus +} +# endif + +#endif + +/* ========================================================================= */ + +#if USE_WINDOWS_THREADS + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# include "windows-mutex.h" +# include "windows-rwlock.h" +# include "windows-recmutex.h" +# include "windows-once.h" + +# ifdef __cplusplus +extern "C" { +# endif + +/* We can use CRITICAL_SECTION directly, rather than the native Windows Event, + Mutex, Semaphore types, because + - we need only to synchronize inside a single process (address space), + not inter-process locking, + - we don't need to support trylock operations. (TryEnterCriticalSection + does not work on Windows 95/98/ME. Packages that need trylock usually + define their own mutex type.) */ + +/* There is no way to statically initialize a CRITICAL_SECTION. It needs + to be done lazily, once only. For this we need spinlocks. */ + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +typedef glwthread_mutex_t gl_lock_t; +# define gl_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_lock_t NAME; +# define gl_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_lock_t NAME = gl_lock_initializer; +# define gl_lock_initializer \ + GLWTHREAD_MUTEX_INIT +# define glthread_lock_init(LOCK) \ + (glwthread_mutex_init (LOCK), 0) +# define glthread_lock_lock(LOCK) \ + glwthread_mutex_lock (LOCK) +# define glthread_lock_unlock(LOCK) \ + glwthread_mutex_unlock (LOCK) +# define glthread_lock_destroy(LOCK) \ + glwthread_mutex_destroy (LOCK) + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +typedef glwthread_rwlock_t gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; +# define gl_rwlock_initializer \ + GLWTHREAD_RWLOCK_INIT +# define glthread_rwlock_init(LOCK) \ + (glwthread_rwlock_init (LOCK), 0) +# define glthread_rwlock_rdlock(LOCK) \ + glwthread_rwlock_rdlock (LOCK) +# define glthread_rwlock_wrlock(LOCK) \ + glwthread_rwlock_wrlock (LOCK) +# define glthread_rwlock_unlock(LOCK) \ + glwthread_rwlock_unlock (LOCK) +# define glthread_rwlock_destroy(LOCK) \ + glwthread_rwlock_destroy (LOCK) + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +typedef glwthread_recmutex_t gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; +# define gl_recursive_lock_initializer \ + GLWTHREAD_RECMUTEX_INIT +# define glthread_recursive_lock_init(LOCK) \ + (glwthread_recmutex_init (LOCK), 0) +# define glthread_recursive_lock_lock(LOCK) \ + glwthread_recmutex_lock (LOCK) +# define glthread_recursive_lock_unlock(LOCK) \ + glwthread_recmutex_unlock (LOCK) +# define glthread_recursive_lock_destroy(LOCK) \ + glwthread_recmutex_destroy (LOCK) + +/* -------------------------- gl_once_t datatype -------------------------- */ + +typedef glwthread_once_t gl_once_t; +# define gl_once_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_once_t NAME = GLWTHREAD_ONCE_INIT; +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (glwthread_once (ONCE_CONTROL, INITFUNCTION), 0) + +# ifdef __cplusplus +} +# endif + +#endif + +/* ========================================================================= */ + +#if !(USE_POSIX_THREADS || USE_WINDOWS_THREADS) + +/* Provide dummy implementation if threads are not supported. */ + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +typedef int gl_lock_t; +# define gl_lock_define(STORAGECLASS, NAME) +# define gl_lock_define_initialized(STORAGECLASS, NAME) +# define glthread_lock_init(NAME) 0 +# define glthread_lock_lock(NAME) 0 +# define glthread_lock_unlock(NAME) 0 +# define glthread_lock_destroy(NAME) 0 + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +typedef int gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) +# define glthread_rwlock_init(NAME) 0 +# define glthread_rwlock_rdlock(NAME) 0 +# define glthread_rwlock_wrlock(NAME) 0 +# define glthread_rwlock_unlock(NAME) 0 +# define glthread_rwlock_destroy(NAME) 0 + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +typedef int gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) +# define glthread_recursive_lock_init(NAME) 0 +# define glthread_recursive_lock_lock(NAME) 0 +# define glthread_recursive_lock_unlock(NAME) 0 +# define glthread_recursive_lock_destroy(NAME) 0 + +/* -------------------------- gl_once_t datatype -------------------------- */ + +typedef int gl_once_t; +# define gl_once_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_once_t NAME = 0; +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (*(ONCE_CONTROL) == 0 ? (*(ONCE_CONTROL) = ~ 0, INITFUNCTION (), 0) : 0) + +#endif + +/* ========================================================================= */ + +/* Macros with built-in error handling. */ + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +#define gl_lock_init(NAME) \ + do \ + { \ + if (glthread_lock_init (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_lock_lock(NAME) \ + do \ + { \ + if (glthread_lock_lock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_lock_unlock(NAME) \ + do \ + { \ + if (glthread_lock_unlock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_lock_destroy(NAME) \ + do \ + { \ + if (glthread_lock_destroy (&NAME)) \ + abort (); \ + } \ + while (0) + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +#define gl_rwlock_init(NAME) \ + do \ + { \ + if (glthread_rwlock_init (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_rwlock_rdlock(NAME) \ + do \ + { \ + if (glthread_rwlock_rdlock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_rwlock_wrlock(NAME) \ + do \ + { \ + if (glthread_rwlock_wrlock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_rwlock_unlock(NAME) \ + do \ + { \ + if (glthread_rwlock_unlock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_rwlock_destroy(NAME) \ + do \ + { \ + if (glthread_rwlock_destroy (&NAME)) \ + abort (); \ + } \ + while (0) + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +#define gl_recursive_lock_init(NAME) \ + do \ + { \ + if (glthread_recursive_lock_init (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_recursive_lock_lock(NAME) \ + do \ + { \ + if (glthread_recursive_lock_lock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_recursive_lock_unlock(NAME) \ + do \ + { \ + if (glthread_recursive_lock_unlock (&NAME)) \ + abort (); \ + } \ + while (0) +#define gl_recursive_lock_destroy(NAME) \ + do \ + { \ + if (glthread_recursive_lock_destroy (&NAME)) \ + abort (); \ + } \ + while (0) + +/* -------------------------- gl_once_t datatype -------------------------- */ + +#define gl_once(NAME, INITFUNCTION) \ + do \ + { \ + if (glthread_once (&NAME, INITFUNCTION)) \ + abort (); \ + } \ + while (0) + +/* ========================================================================= */ + +#endif /* _LOCK_H */ diff --git a/lib/glthread/threadlib.c b/lib/glthread/threadlib.c new file mode 100644 index 0000000..a5ebd9b --- /dev/null +++ b/lib/glthread/threadlib.c @@ -0,0 +1,73 @@ +/* Multithreading primitives. + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. */ + +#include + +/* ========================================================================= */ + +#if USE_POSIX_THREADS + +/* Use the POSIX threads library. */ + +# include +# include + +# if PTHREAD_IN_USE_DETECTION_HARD + +/* The function to be executed by a dummy thread. */ +static void * +dummy_thread_func (void *arg) +{ + return arg; +} + +int +glthread_in_use (void) +{ + static int tested; + static int result; /* 1: linked with -lpthread, 0: only with libc */ + + if (!tested) + { + pthread_t thread; + + if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0) + /* Thread creation failed. */ + result = 0; + else + { + /* Thread creation works. */ + void *retval; + if (pthread_join (thread, &retval) != 0) + abort (); + result = 1; + } + tested = 1; + } + return result; +} + +# endif + +#endif + +/* ========================================================================= */ + +/* This declaration is solely to ensure that after preprocessing + this file is never empty. */ +typedef int dummy; diff --git a/lib/hard-locale.c b/lib/hard-locale.c index 57ed42b..dcfcad6 100644 --- a/lib/hard-locale.c +++ b/lib/hard-locale.c @@ -1,6 +1,6 @@ /* hard-locale.c -- Determine whether a locale is hard. - Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2017 Free Software + Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -14,7 +14,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/hard-locale.h b/lib/hard-locale.h index ba424af..8f1da96 100644 --- a/lib/hard-locale.h +++ b/lib/hard-locale.h @@ -1,6 +1,6 @@ /* Determine whether a locale is hard. - Copyright (C) 1999, 2003-2004, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2003-2004, 2009-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #ifndef HARD_LOCALE_H_ # define HARD_LOCALE_H_ 1 diff --git a/lib/iconv.c b/lib/iconv.c index 89951cb..d27f097 100644 --- a/lib/iconv.c +++ b/lib/iconv.c @@ -1,5 +1,5 @@ /* Character set conversion. - Copyright (C) 1999-2001, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2001, 2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + with this program; if not, see . */ #include @@ -26,9 +26,6 @@ # include # include # include "unistr.h" -# ifndef uintptr_t -# define uintptr_t unsigned long -# endif #endif #if REPLACE_ICONV_UTF diff --git a/lib/iconv.in.h b/lib/iconv.in.h index ddaae67..090581b 100644 --- a/lib/iconv.in.h +++ b/lib/iconv.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ICONV_H @@ -52,6 +52,12 @@ _GL_CXXALIAS_SYS (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # endif _GL_CXXALIASWARN (iconv_open); +#elif defined GNULIB_POSIXCHECK +# undef iconv_open +# if HAVE_RAW_DECL_ICONV_OPEN +_GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - " + "use gnulib module iconv for portability"); +# endif #endif #if @REPLACE_ICONV_UTF@ @@ -90,6 +96,12 @@ _GL_CXXALIASWARN (iconv); # ifndef ICONV_CONST # define ICONV_CONST @ICONV_CONST@ # endif +#elif defined GNULIB_POSIXCHECK +# undef iconv +# if HAVE_RAW_DECL_ICONV +_GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - " + "use gnulib module iconv for portability"); +# endif #endif #if @GNULIB_ICONV@ diff --git a/lib/iconv_close.c b/lib/iconv_close.c index ddadf6a..49362d4 100644 --- a/lib/iconv_close.c +++ b/lib/iconv_close.c @@ -1,5 +1,5 @@ /* Character set conversion. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + with this program; if not, see . */ #include @@ -20,9 +20,6 @@ #include #include -#ifndef uintptr_t -# define uintptr_t unsigned long -#endif int rpl_iconv_close (iconv_t cd) diff --git a/lib/iconv_open-aix.gperf b/lib/iconv_open-aix.gperf index 6782b99..0fe4b83 100644 --- a/lib/iconv_open-aix.gperf +++ b/lib/iconv_open-aix.gperf @@ -1,3 +1,19 @@ +/* Character set conversion. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C diff --git a/lib/iconv_open-aix.h b/lib/iconv_open-aix.h index 129e030..85ed767 100644 --- a/lib/iconv_open-aix.h +++ b/lib/iconv_open-aix.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ +/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-aix.gperf */ /* Computed positions: -k'4,$' */ @@ -26,10 +26,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 1 "./iconv_open-aix.gperf" +#line 17 "./iconv_open-aix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 32 @@ -47,7 +47,7 @@ inline #endif #endif static unsigned int -mapping_hash (register const char *str, register unsigned int len) +mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { @@ -156,91 +156,85 @@ static const struct stringpool_t stringpool_contents = static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 43 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"}, -#line 42 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"}, -#line 25 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"}, +#line 59 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"}, +#line 58 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"}, #line 41 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"}, -#line 14 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"}, -#line 27 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"}, -#line 24 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"}, -#line 19 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"}, -#line 33 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"}, -#line 40 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"}, -#line 44 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "big5"}, -#line 23 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"}, - {-1}, -#line 17 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"}, -#line 22 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"}, -#line 15 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"}, -#line 31 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"}, -#line 35 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"}, -#line 20 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"}, -#line 26 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"}, -#line 37 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"}, -#line 18 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, -#line 29 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"}, -#line 32 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"}, -#line 39 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"}, -#line 21 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"}, - {-1}, -#line 34 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"}, -#line 16 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"}, -#line 13 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"}, - {-1}, {-1}, -#line 38 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"}, - {-1}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"}, +#line 57 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"}, #line 30 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"}, +#line 43 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"}, +#line 40 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"}, +#line 35 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"}, +#line 49 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"}, +#line 56 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"}, +#line 60 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "big5"}, +#line 39 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"}, + {-1}, +#line 33 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"}, +#line 38 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"}, +#line 31 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"}, +#line 47 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"}, +#line 51 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"}, #line 36 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"}, +#line 42 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"}, +#line 53 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"}, +#line 34 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, +#line 45 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"}, +#line 48 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"}, +#line 55 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"}, +#line 37 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"}, + {-1}, +#line 50 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"}, +#line 32 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"}, +#line 29 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"}, {-1}, {-1}, -#line 28 "./iconv_open-aix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"} +#line 54 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"}, + {-1}, +#line 46 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"}, +#line 52 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, + {-1}, {-1}, +#line 44 "./iconv_open-aix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"} }; -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif const struct mapping * -mapping_lookup (register const char *str, register unsigned int len) +mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - register int key = mapping_hash (str, len); + register unsigned int key = mapping_hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) diff --git a/lib/iconv_open-hpux.gperf b/lib/iconv_open-hpux.gperf index 5a35c83..b5cbaf4 100644 --- a/lib/iconv_open-hpux.gperf +++ b/lib/iconv_open-hpux.gperf @@ -1,3 +1,19 @@ +/* Character set conversion. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + struct mapping { int standard_name; const char vendor_name[9 + 1]; }; %struct-type %language=ANSI-C diff --git a/lib/iconv_open-hpux.h b/lib/iconv_open-hpux.h index 3bcff76..fe3c289 100644 --- a/lib/iconv_open-hpux.h +++ b/lib/iconv_open-hpux.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ +/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */ /* Computed positions: -k'4,$' */ @@ -26,10 +26,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 1 "./iconv_open-hpux.gperf" +#line 17 "./iconv_open-hpux.gperf" struct mapping { int standard_name; const char vendor_name[9 + 1]; }; #define TOTAL_KEYWORDS 44 @@ -47,7 +47,7 @@ inline #endif #endif static unsigned int -mapping_hash (register const char *str, register unsigned int len) +mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { @@ -180,110 +180,104 @@ static const struct stringpool_t stringpool_contents = static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 40 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"}, -#line 34 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"}, -#line 35 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"}, -#line 23 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "cp850"}, -#line 49 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "tis620"}, -#line 38 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"}, -#line 16 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"}, -#line 53 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"}, -#line 13 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"}, -#line 19 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"}, -#line 39 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"}, -#line 54 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "big5"}, -#line 25 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp855"}, -#line 41 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"}, -#line 52 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"}, -#line 26 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp857"}, -#line 15 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"}, -#line 20 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"}, -#line 31 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "cp866"}, -#line 17 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"}, -#line 27 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "cp861"}, -#line 32 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "cp869"}, -#line 33 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "cp874"}, -#line 29 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp864"}, -#line 36 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, -#line 21 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp437"}, -#line 24 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "cp852"}, -#line 22 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp775"}, -#line 30 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp865"}, -#line 51 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"}, -#line 14 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"}, -#line 55 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "sjis"}, -#line 42 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"}, #line 56 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "utf8"}, -#line 48 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "kana8"}, -#line 43 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "roman8"}, -#line 46 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"}, #line 50 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"}, -#line 18 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"}, +#line 51 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"}, +#line 39 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "cp850"}, +#line 65 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "tis620"}, +#line 54 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"}, +#line 32 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"}, +#line 69 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"}, +#line 29 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"}, +#line 35 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"}, +#line 55 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"}, +#line 70 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "big5"}, +#line 41 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp855"}, +#line 57 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"}, +#line 68 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"}, +#line 42 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp857"}, +#line 31 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"}, +#line 36 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"}, #line 47 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "cp866"}, +#line 33 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"}, +#line 43 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "cp861"}, +#line 48 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "cp869"}, +#line 49 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "cp874"}, #line 45 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "greek8"}, -#line 44 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"}, -#line 28 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, "cp862"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp864"}, +#line 52 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 37 "./iconv_open-hpux.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"} + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp437"}, +#line 40 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "cp852"}, +#line 38 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp775"}, +#line 46 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp865"}, +#line 67 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"}, +#line 30 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"}, +#line 71 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "sjis"}, +#line 58 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"}, +#line 72 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "utf8"}, +#line 64 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "kana8"}, +#line 59 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "roman8"}, +#line 62 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"}, +#line 66 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"}, +#line 34 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"}, +#line 63 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"}, +#line 61 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "greek8"}, +#line 60 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"}, +#line 44 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, "cp862"}, +#line 53 "./iconv_open-hpux.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"} }; -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif const struct mapping * -mapping_lookup (register const char *str, register unsigned int len) +mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - register int key = mapping_hash (str, len); + register unsigned int key = mapping_hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) diff --git a/lib/iconv_open-irix.gperf b/lib/iconv_open-irix.gperf index 3672a80..459cf41 100644 --- a/lib/iconv_open-irix.gperf +++ b/lib/iconv_open-irix.gperf @@ -1,3 +1,19 @@ +/* Character set conversion. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C diff --git a/lib/iconv_open-irix.h b/lib/iconv_open-irix.h index 74ceb8f..9eec045 100644 --- a/lib/iconv_open-irix.h +++ b/lib/iconv_open-irix.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ +/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-irix.gperf */ /* Computed positions: -k'1,$' */ @@ -26,10 +26,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 1 "./iconv_open-irix.gperf" +#line 17 "./iconv_open-irix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 19 @@ -47,7 +47,7 @@ inline #endif #endif static unsigned int -mapping_hash (register const char *str, register unsigned int len) +mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { @@ -130,60 +130,54 @@ static const struct stringpool_t stringpool_contents = static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, -#line 24 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"}, +#line 40 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"}, +#line 45 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"}, +#line 44 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"}, +#line 41 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"}, +#line 46 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "sjis"}, +#line 33 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"}, +#line 38 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 29 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"}, -#line 28 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"}, -#line 25 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"}, +#line 43 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"}, +#line 39 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"}, #line 30 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "sjis"}, -#line 17 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"}, -#line 22 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, -#line 13 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"}, -#line 27 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"}, -#line 23 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"}, -#line 14 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"}, -#line 26 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"}, -#line 21 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"}, -#line 20 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"}, -#line 19 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"}, -#line 18 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"}, -#line 16 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"}, -#line 15 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"}, +#line 42 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"}, +#line 37 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"}, +#line 36 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"}, +#line 35 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"}, +#line 34 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"}, +#line 32 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"}, #line 31 "./iconv_open-irix.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"} + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"}, +#line 47 "./iconv_open-irix.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"} }; -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif const struct mapping * -mapping_lookup (register const char *str, register unsigned int len) +mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - register int key = mapping_hash (str, len); + register unsigned int key = mapping_hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) diff --git a/lib/iconv_open-osf.gperf b/lib/iconv_open-osf.gperf index f468ff6..6ae174f 100644 --- a/lib/iconv_open-osf.gperf +++ b/lib/iconv_open-osf.gperf @@ -1,3 +1,19 @@ +/* Character set conversion. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C diff --git a/lib/iconv_open-osf.h b/lib/iconv_open-osf.h index 4d35764..cf23c08 100644 --- a/lib/iconv_open-osf.h +++ b/lib/iconv_open-osf.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ +/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-osf.gperf */ /* Computed positions: -k'4,$' */ @@ -26,10 +26,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 1 "./iconv_open-osf.gperf" +#line 17 "./iconv_open-osf.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 38 @@ -47,7 +47,7 @@ inline #endif #endif static unsigned int -mapping_hash (register const char *str, register unsigned int len) +mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { @@ -168,101 +168,95 @@ static const struct stringpool_t stringpool_contents = static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 41 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"}, -#line 24 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp775"}, -#line 36 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"}, -#line 47 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"}, -#line 46 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"}, -#line 50 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"}, -#line 17 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"}, -#line 22 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"}, -#line 48 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "big5"}, -#line 27 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "cp855"}, -#line 44 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"}, -#line 25 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "cp850"}, -#line 31 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp865"}, -#line 45 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"}, -#line 43 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"}, -#line 42 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"}, -#line 20 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"}, -#line 49 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"}, - {-1}, -#line 21 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"}, -#line 19 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"}, -#line 18 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, - {-1}, -#line 28 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp857"}, -#line 38 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, -#line 33 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp869"}, -#line 35 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"}, -#line 32 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp866"}, -#line 23 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp437"}, -#line 37 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"}, -#line 14 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"}, +#line 57 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"}, #line 40 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp775"}, +#line 52 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"}, +#line 63 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"}, +#line 62 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"}, +#line 66 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"}, +#line 33 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"}, +#line 38 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"}, +#line 64 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "big5"}, +#line 43 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "cp855"}, +#line 60 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"}, +#line 41 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "cp850"}, +#line 47 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp865"}, +#line 61 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"}, +#line 59 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"}, +#line 58 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"}, +#line 36 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"}, +#line 65 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"}, + {-1}, +#line 37 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"}, +#line 35 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"}, #line 34 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp874"}, -#line 26 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "cp852"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, + {-1}, +#line 44 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp857"}, +#line 54 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, +#line 49 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp869"}, +#line 51 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"}, +#line 48 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp866"}, #line 39 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"}, -#line 13 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp437"}, +#line 53 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"}, #line 30 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "cp862"}, -#line 16 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, - {-1}, {-1}, -#line 15 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"}, + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"}, +#line 56 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"}, +#line 50 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp874"}, +#line 42 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "cp852"}, +#line 55 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"}, #line 29 "./iconv_open-osf.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "cp861"} + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"}, +#line 46 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "cp862"}, +#line 32 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, + {-1}, {-1}, +#line 31 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"}, +#line 45 "./iconv_open-osf.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "cp861"} }; -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif const struct mapping * -mapping_lookup (register const char *str, register unsigned int len) +mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - register int key = mapping_hash (str, len); + register unsigned int key = mapping_hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) diff --git a/lib/iconv_open-solaris.gperf b/lib/iconv_open-solaris.gperf index 7d7da38..55749f6 100644 --- a/lib/iconv_open-solaris.gperf +++ b/lib/iconv_open-solaris.gperf @@ -1,3 +1,19 @@ +/* Character set conversion. + Copyright (C) 2007, 2009 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C diff --git a/lib/iconv_open-solaris.h b/lib/iconv_open-solaris.h index 630cde1..b38b16c 100644 --- a/lib/iconv_open-solaris.h +++ b/lib/iconv_open-solaris.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ +/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-solaris.gperf */ /* Computed positions: -k'10' */ @@ -26,10 +26,10 @@ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 1 "./iconv_open-solaris.gperf" +#line 17 "./iconv_open-solaris.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 13 @@ -47,7 +47,7 @@ inline #endif #endif static unsigned int -mapping_hash (register const char *str, register unsigned int len) +mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { @@ -78,7 +78,7 @@ mapping_hash (register const char *str, register unsigned int len) 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; - register int hval = len; + register unsigned int hval = len; switch (hval) { @@ -132,49 +132,43 @@ static const struct stringpool_t stringpool_contents = static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, -#line 19 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "646"}, -#line 30 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"}, -#line 18 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str7}, +#line 35 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "646"}, +#line 46 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"}, +#line 34 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7}, {-1}, {-1}, -#line 20 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"}, -#line 29 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, -#line 28 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"}, -#line 27 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"}, -#line 26 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, -#line 25 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"}, -#line 24 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"}, -#line 23 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"}, -#line 22 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"}, -#line 21 "./iconv_open-solaris.gperf" - {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"} +#line 36 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"}, +#line 45 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, +#line 44 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"}, +#line 43 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"}, +#line 42 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, +#line 41 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"}, +#line 40 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"}, +#line 39 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"}, +#line 38 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"}, +#line 37 "./iconv_open-solaris.gperf" + {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"} }; -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif const struct mapping * -mapping_lookup (register const char *str, register unsigned int len) +mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { - register int key = mapping_hash (str, len); + register unsigned int key = mapping_hash (str, len); - if (key <= MAX_HASH_VALUE && key >= 0) + if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) diff --git a/lib/iconv_open.c b/lib/iconv_open.c index 376dc41..10bf403 100644 --- a/lib/iconv_open.c +++ b/lib/iconv_open.c @@ -1,5 +1,5 @@ /* Character set conversion. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + with this program; if not, see . */ #include diff --git a/lib/limits.in.h b/lib/limits.in.h index 08d3c32..39750b3 100644 --- a/lib/limits.in.h +++ b/lib/limits.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright 2016-2017 Free Software Foundation, Inc. + Copyright 2016-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_LIMITS_H @@ -28,15 +28,32 @@ #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H -/* For HP-UX 11.31. */ -#if defined LONG_LONG_MIN && !defined LLONG_MIN -# define LLONG_MIN LONG_LONG_MIN +#ifndef LLONG_MIN +# if defined LONG_LONG_MIN /* HP-UX 11.31 */ +# define LLONG_MIN LONG_LONG_MIN +# elif defined LONGLONG_MIN /* IRIX 6.5 */ +# define LLONG_MIN LONGLONG_MIN +# elif defined __GNUC__ +# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) +# endif #endif -#if defined LONG_LONG_MAX && !defined LLONG_MAX -# define LLONG_MAX LONG_LONG_MAX +#ifndef LLONG_MAX +# if defined LONG_LONG_MAX /* HP-UX 11.31 */ +# define LLONG_MAX LONG_LONG_MAX +# elif defined LONGLONG_MAX /* IRIX 6.5 */ +# define LLONG_MAX LONGLONG_MAX +# elif defined __GNUC__ +# define LLONG_MAX __LONG_LONG_MAX__ +# endif #endif -#if defined ULONG_LONG_MAX && !defined ULLONG_MAX -# define ULLONG_MAX ULONG_LONG_MAX +#ifndef ULLONG_MAX +# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ +# define ULLONG_MAX ULONG_LONG_MAX +# elif defined ULONGLONG_MAX /* IRIX 6.5 */ +# define ULLONG_MAX ULONGLONG_MAX +# elif defined __GNUC__ +# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) +# endif #endif /* The number of usable bits in an unsigned or signed integer type @@ -53,6 +70,19 @@ #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) +#ifndef WORD_BIT +/* Assume 'int' is 32 bits wide. */ +# define WORD_BIT 32 +#endif +#ifndef LONG_BIT +/* Assume 'long' is 32 or 64 bits wide. */ +# if LONG_MAX == INT_MAX +# define LONG_BIT 32 +# else +# define LONG_BIT 64 +# endif +#endif + /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ diff --git a/lib/localcharset.c b/lib/localcharset.c index 9b7e6cb..479fcb9 100644 --- a/lib/localcharset.c +++ b/lib/localcharset.c @@ -1,6 +1,6 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2006, 2008-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + with this program; if not, see . */ /* Written by Bruno Haible . */ @@ -22,7 +22,6 @@ /* Specification. */ #include "localcharset.h" -#include #include #include #include @@ -32,7 +31,7 @@ # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +#if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include #endif @@ -45,11 +44,10 @@ #endif #if !defined WINDOWS_NATIVE -# include # if HAVE_LANGINFO_CODESET # include # else -# if 0 /* see comment below */ +# if 0 /* see comment regarding use of setlocale(), below */ # include # endif # endif @@ -71,321 +69,750 @@ # include #endif -#if ENABLE_RELOCATABLE -# include "relocatable.h" -#else -# define relocate(pathname) (pathname) -# define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) -#endif -/* Get LIBDIR. */ -#ifndef LIBDIR -# include "configmake.h" -#endif +#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 -/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif +/* On these platforms, we use a mapping from non-canonical encoding name + to GNU canonical encoding name. */ -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#endif +/* With glibc-2.1 or newer, we don't need any canonicalization, + because glibc has iconv and both glibc and libiconv support all + GNU canonical names directly. */ +# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) -#ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -#endif - -#ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -#endif - -#if HAVE_DECL_GETC_UNLOCKED -# undef getc -# define getc getc_unlocked -#endif - -/* The following static variable is declared 'volatile' to avoid a - possible multithread problem in the function get_charset_aliases. If we - are running in a threaded environment, and if two threads initialize - 'charset_aliases' simultaneously, both will produce the same value, - and everything will be ok if the two assignments to 'charset_aliases' - are atomic. But I don't know what will happen if the two assignments mix. */ -#if __STDC__ != 1 -# define volatile /* empty */ -#endif -/* Pointer to the contents of the charset.alias file, if it has already been - read, else NULL. Its format is: - ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ -static const char * volatile charset_aliases; - -/* Return a pointer to the contents of the charset.alias file. */ -static const char * -get_charset_aliases (void) +struct table_entry { - const char *cp; + const char alias[11+1]; + const char canonical[11+1]; +}; - cp = charset_aliases; - if (cp == NULL) - { -#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2) - char *malloc_dir = NULL; - const char *dir; - const char *base = "charset.alias"; - char *file_name; +/* Table of platform-dependent mappings, sorted in ascending order. */ +static const struct table_entry alias_table[] = + { +# if defined __FreeBSD__ /* FreeBSD */ + /*{ "ARMSCII-8", "ARMSCII-8" },*/ + { "Big5", "BIG5" }, + { "C", "ASCII" }, + /*{ "CP1131", "CP1131" },*/ + /*{ "CP1251", "CP1251" },*/ + /*{ "CP866", "CP866" },*/ + /*{ "GB18030", "GB18030" },*/ + /*{ "GB2312", "GB2312" },*/ + /*{ "GBK", "GBK" },*/ + /*{ "ISCII-DEV", "?" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + /*{ "KOI8-R", "KOI8-R" },*/ + /*{ "KOI8-U", "KOI8-U" },*/ + { "SJIS", "SHIFT_JIS" }, + { "US-ASCII", "ASCII" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" } +# define alias_table_defined +# endif +# if defined __NetBSD__ /* NetBSD */ + { "646", "ASCII" }, + /*{ "ARMSCII-8", "ARMSCII-8" },*/ + /*{ "BIG5", "BIG5" },*/ + { "Big5-HKSCS", "BIG5-HKSCS" }, + /*{ "CP1251", "CP1251" },*/ + /*{ "CP866", "CP866" },*/ + /*{ "GB18030", "GB18030" },*/ + /*{ "GB2312", "GB2312" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + /*{ "KOI8-R", "KOI8-R" },*/ + /*{ "KOI8-U", "KOI8-U" },*/ + /*{ "PT154", "PT154" },*/ + { "SJIS", "SHIFT_JIS" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# if defined __OpenBSD__ /* OpenBSD */ + { "646", "ASCII" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" } +# define alias_table_defined +# endif +# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ + /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is + useless: + - It returns the empty string when LANG is set to a locale of the + form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 + LC_CTYPE file. + - The environment variables LANG, LC_CTYPE, LC_ALL are not set by + the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. + - The documentation says: + "... all code that calls BSD system routines should ensure + that the const *char parameters of these routines are in UTF-8 + encoding. All BSD system functions expect their string + parameters to be in UTF-8 encoding and nothing else." + It also says + "An additional caveat is that string parameters for files, + paths, and other file-system entities must be in canonical + UTF-8. In a canonical UTF-8 Unicode string, all decomposable + characters are decomposed ..." + but this is not true: You can pass non-decomposed UTF-8 strings + to file system functions, and it is the OS which will convert + them to decomposed UTF-8 before accessing the file system. + - The Apple Terminal application displays UTF-8 by default. + - However, other applications are free to use different encodings: + - xterm uses ISO-8859-1 by default. + - TextEdit uses MacRoman by default. + We prefer UTF-8 over decomposed UTF-8-MAC because one should + minimize the use of decomposed Unicode. Unfortunately, through the + Darwin file system, decomposed UTF-8 strings are leaked into user + space nevertheless. + Then there are also the locales with encodings other than US-ASCII + and UTF-8. These locales can be occasionally useful to users (e.g. + when grepping through ISO-8859-1 encoded text files), when all their + file names are in US-ASCII. + */ + { "ARMSCII-8", "ARMSCII-8" }, + { "Big5", "BIG5" }, + { "Big5HKSCS", "BIG5-HKSCS" }, + { "CP1131", "CP1131" }, + { "CP1251", "CP1251" }, + { "CP866", "CP866" }, + { "CP949", "CP949" }, + { "GB18030", "GB18030" }, + { "GB2312", "GB2312" }, + { "GBK", "GBK" }, + /*{ "ISCII-DEV", "?" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + { "KOI8-R", "KOI8-R" }, + { "KOI8-U", "KOI8-U" }, + { "PT154", "PT154" }, + { "SJIS", "SHIFT_JIS" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" } +# define alias_table_defined +# endif +# if defined _AIX /* AIX */ + /*{ "GBK", "GBK" },*/ + { "IBM-1046", "CP1046" }, + { "IBM-1124", "CP1124" }, + { "IBM-1129", "CP1129" }, + { "IBM-1252", "CP1252" }, + { "IBM-850", "CP850" }, + { "IBM-856", "CP856" }, + { "IBM-921", "ISO-8859-13" }, + { "IBM-922", "CP922" }, + { "IBM-932", "CP932" }, + { "IBM-943", "CP943" }, + { "IBM-eucCN", "GB2312" }, + { "IBM-eucJP", "EUC-JP" }, + { "IBM-eucKR", "EUC-KR" }, + { "IBM-eucTW", "EUC-TW" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "TIS-620", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "big5", "BIG5" } +# define alias_table_defined +# endif +# if defined __hpux /* HP-UX */ + { "SJIS", "SHIFT_JIS" }, + { "arabic8", "HP-ARABIC8" }, + { "big5", "BIG5" }, + { "cp1251", "CP1251" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" }, + { "gb18030", "GB18030" }, + { "greek8", "HP-GREEK8" }, + { "hebrew8", "HP-HEBREW8" }, + { "hkbig5", "BIG5-HKSCS" }, + { "hp15CN", "GB2312" }, + { "iso88591", "ISO-8859-1" }, + { "iso885913", "ISO-8859-13" }, + { "iso885915", "ISO-8859-15" }, + { "iso88592", "ISO-8859-2" }, + { "iso88594", "ISO-8859-4" }, + { "iso88595", "ISO-8859-5" }, + { "iso88596", "ISO-8859-6" }, + { "iso88597", "ISO-8859-7" }, + { "iso88598", "ISO-8859-8" }, + { "iso88599", "ISO-8859-9" }, + { "kana8", "HP-KANA8" }, + { "koi8r", "KOI8-R" }, + { "roman8", "HP-ROMAN8" }, + { "tis620", "TIS-620" }, + { "turkish8", "HP-TURKISH8" }, + { "utf8", "UTF-8" } +# define alias_table_defined +# endif +# if defined __sgi /* IRIX */ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# if defined __osf__ /* OSF/1 */ + /*{ "GBK", "GBK" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "KSC5601", "CP949" }, + { "SJIS", "SHIFT_JIS" }, + { "TACTIS", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "big5", "BIG5" }, + { "cp850", "CP850" }, + { "dechanyu", "DEC-HANYU" }, + { "dechanzi", "GB2312" }, + { "deckanji", "DEC-KANJI" }, + { "deckorean", "EUC-KR" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" }, + { "sdeckanji", "EUC-JP" } +# define alias_table_defined +# endif +# if defined __sun /* Solaris */ + { "5601", "EUC-KR" }, + { "646", "ASCII" }, + /*{ "BIG5", "BIG5" },*/ + { "Big5-HKSCS", "BIG5-HKSCS" }, + { "GB18030", "GB18030" }, + /*{ "GBK", "GBK" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-11", "TIS-620" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-3", "ISO-8859-3" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "PCK", "SHIFT_JIS" }, + { "TIS620.2533", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "ansi-1251", "CP1251" }, + { "cns11643", "EUC-TW" }, + { "eucJP", "EUC-JP" }, + { "gb2312", "GB2312" }, + { "koi8-r", "KOI8-R" } +# define alias_table_defined +# endif +# if defined __minix /* Minix */ + { "646", "ASCII" } +# define alias_table_defined +# endif +# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ + { "CP1361", "JOHAB" }, + { "CP20127", "ASCII" }, + { "CP20866", "KOI8-R" }, + { "CP20936", "GB2312" }, + { "CP21866", "KOI8-RU" }, + { "CP28591", "ISO-8859-1" }, + { "CP28592", "ISO-8859-2" }, + { "CP28593", "ISO-8859-3" }, + { "CP28594", "ISO-8859-4" }, + { "CP28595", "ISO-8859-5" }, + { "CP28596", "ISO-8859-6" }, + { "CP28597", "ISO-8859-7" }, + { "CP28598", "ISO-8859-8" }, + { "CP28599", "ISO-8859-9" }, + { "CP28605", "ISO-8859-15" }, + { "CP38598", "ISO-8859-8" }, + { "CP51932", "EUC-JP" }, + { "CP51936", "GB2312" }, + { "CP51949", "EUC-KR" }, + { "CP51950", "EUC-TW" }, + { "CP54936", "GB18030" }, + { "CP65001", "UTF-8" }, + { "CP936", "GBK" } +# define alias_table_defined +# endif +# if defined OS2 /* OS/2 */ + /* The list of encodings is taken from "List of OS/2 Codepages" + by Alex Taylor: + . + See also "__convcp() of kLIBC": + . */ + { "CP1004", "CP1252" }, + /*{ "CP1041", "CP943" },*/ + /*{ "CP1088", "CP949" },*/ + { "CP1089", "ISO-8859-6" }, + /*{ "CP1114", "CP950" },*/ + /*{ "CP1115", "GB2312" },*/ + { "CP1208", "UTF-8" }, + /*{ "CP1380", "GB2312" },*/ + { "CP1381", "GB2312" }, + { "CP1383", "GB2312" }, + { "CP1386", "GBK" }, + /*{ "CP301", "CP943" },*/ + { "CP3372", "EUC-JP" }, + { "CP4946", "CP850" }, + /*{ "CP5048", "JIS_X0208-1990" },*/ + /*{ "CP5049", "JIS_X0212-1990" },*/ + /*{ "CP5067", "KS_C_5601-1987" },*/ + { "CP813", "ISO-8859-7" }, + { "CP819", "ISO-8859-1" }, + { "CP878", "KOI8-R" }, + /*{ "CP897", "CP943" },*/ + { "CP912", "ISO-8859-2" }, + { "CP913", "ISO-8859-3" }, + { "CP914", "ISO-8859-4" }, + { "CP915", "ISO-8859-5" }, + { "CP916", "ISO-8859-8" }, + { "CP920", "ISO-8859-9" }, + { "CP921", "ISO-8859-13" }, + { "CP923", "ISO-8859-15" }, + /*{ "CP941", "CP943" },*/ + /*{ "CP947", "CP950" },*/ + /*{ "CP951", "CP949" },*/ + /*{ "CP952", "JIS_X0208-1990" },*/ + /*{ "CP953", "JIS_X0212-1990" },*/ + { "CP954", "EUC-JP" }, + { "CP964", "EUC-TW" }, + { "CP970", "EUC-KR" }, + /*{ "CP971", "KS_C_5601-1987" },*/ + { "IBM-1004", "CP1252" }, + /*{ "IBM-1006", "?" },*/ + /*{ "IBM-1008", "?" },*/ + /*{ "IBM-1041", "CP943" },*/ + /*{ "IBM-1051", "?" },*/ + /*{ "IBM-1088", "CP949" },*/ + { "IBM-1089", "ISO-8859-6" }, + /*{ "IBM-1098", "?" },*/ + /*{ "IBM-1114", "CP950" },*/ + /*{ "IBM-1115", "GB2312" },*/ + /*{ "IBM-1116", "?" },*/ + /*{ "IBM-1117", "?" },*/ + /*{ "IBM-1118", "?" },*/ + /*{ "IBM-1119", "?" },*/ + { "IBM-1124", "CP1124" }, + { "IBM-1125", "CP1125" }, + { "IBM-1131", "CP1131" }, + { "IBM-1208", "UTF-8" }, + { "IBM-1250", "CP1250" }, + { "IBM-1251", "CP1251" }, + { "IBM-1252", "CP1252" }, + { "IBM-1253", "CP1253" }, + { "IBM-1254", "CP1254" }, + { "IBM-1255", "CP1255" }, + { "IBM-1256", "CP1256" }, + { "IBM-1257", "CP1257" }, + /*{ "IBM-1275", "?" },*/ + /*{ "IBM-1276", "?" },*/ + /*{ "IBM-1277", "?" },*/ + /*{ "IBM-1280", "?" },*/ + /*{ "IBM-1281", "?" },*/ + /*{ "IBM-1282", "?" },*/ + /*{ "IBM-1283", "?" },*/ + /*{ "IBM-1380", "GB2312" },*/ + { "IBM-1381", "GB2312" }, + { "IBM-1383", "GB2312" }, + { "IBM-1386", "GBK" }, + /*{ "IBM-301", "CP943" },*/ + { "IBM-3372", "EUC-JP" }, + { "IBM-367", "ASCII" }, + { "IBM-437", "CP437" }, + { "IBM-4946", "CP850" }, + /*{ "IBM-5048", "JIS_X0208-1990" },*/ + /*{ "IBM-5049", "JIS_X0212-1990" },*/ + /*{ "IBM-5067", "KS_C_5601-1987" },*/ + { "IBM-813", "ISO-8859-7" }, + { "IBM-819", "ISO-8859-1" }, + { "IBM-850", "CP850" }, + /*{ "IBM-851", "?" },*/ + { "IBM-852", "CP852" }, + { "IBM-855", "CP855" }, + { "IBM-856", "CP856" }, + { "IBM-857", "CP857" }, + /*{ "IBM-859", "?" },*/ + { "IBM-860", "CP860" }, + { "IBM-861", "CP861" }, + { "IBM-862", "CP862" }, + { "IBM-863", "CP863" }, + { "IBM-864", "CP864" }, + { "IBM-865", "CP865" }, + { "IBM-866", "CP866" }, + /*{ "IBM-868", "?" },*/ + { "IBM-869", "CP869" }, + { "IBM-874", "CP874" }, + { "IBM-878", "KOI8-R" }, + /*{ "IBM-895", "?" },*/ + /*{ "IBM-897", "CP943" },*/ + /*{ "IBM-907", "?" },*/ + /*{ "IBM-909", "?" },*/ + { "IBM-912", "ISO-8859-2" }, + { "IBM-913", "ISO-8859-3" }, + { "IBM-914", "ISO-8859-4" }, + { "IBM-915", "ISO-8859-5" }, + { "IBM-916", "ISO-8859-8" }, + { "IBM-920", "ISO-8859-9" }, + { "IBM-921", "ISO-8859-13" }, + { "IBM-922", "CP922" }, + { "IBM-923", "ISO-8859-15" }, + { "IBM-932", "CP932" }, + /*{ "IBM-941", "CP943" },*/ + /*{ "IBM-942", "?" },*/ + { "IBM-943", "CP943" }, + /*{ "IBM-947", "CP950" },*/ + { "IBM-949", "CP949" }, + { "IBM-950", "CP950" }, + /*{ "IBM-951", "CP949" },*/ + /*{ "IBM-952", "JIS_X0208-1990" },*/ + /*{ "IBM-953", "JIS_X0212-1990" },*/ + { "IBM-954", "EUC-JP" }, + /*{ "IBM-955", "?" },*/ + { "IBM-964", "EUC-TW" }, + { "IBM-970", "EUC-KR" }, + /*{ "IBM-971", "KS_C_5601-1987" },*/ + { "IBM-eucCN", "GB2312" }, + { "IBM-eucJP", "EUC-JP" }, + { "IBM-eucKR", "EUC-KR" }, + { "IBM-eucTW", "EUC-TW" }, + { "IBM33722", "EUC-JP" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-3", "ISO-8859-3" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + /*{ "JISX0201-1976", "JISX0201-1976" },*/ + /*{ "JISX0208-1978", "?" },*/ + /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ + /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ + /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ + /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ + { "SJIS-1", "CP943" }, + { "SJIS-2", "CP943" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW-1993", "EUC-TW" } +# define alias_table_defined +# endif +# if defined VMS /* OpenVMS */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + { "DECHANYU", "DEC-HANYU" }, + { "DECHANZI", "GB2312" }, + { "DECKANJI", "DEC-KANJI" }, + { "DECKOREAN", "EUC-KR" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "SDECKANJI", "EUC-JP" }, + { "SJIS", "SHIFT_JIS" }, + { "eucJP", "EUC-JP" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# ifndef alias_table_defined + /* Just a dummy entry, to avoid a C syntax error. */ + { "", "" } +# endif + }; - /* Make it possible to override the charset.alias location. This is - necessary for running the testsuite before "make install". */ - dir = getenv ("CHARSETALIASDIR"); - if (dir == NULL || dir[0] == '\0') - dir = relocate2 (LIBDIR, &malloc_dir); - - /* Concatenate dir and base into freshly allocated file_name. */ - { - size_t dir_len = strlen (dir); - size_t base_len = strlen (base); - int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); - file_name = (char *) malloc (dir_len + add_slash + base_len + 1); - if (file_name != NULL) - { - memcpy (file_name, dir, dir_len); - if (add_slash) - file_name[dir_len] = DIRECTORY_SEPARATOR; - memcpy (file_name + dir_len + add_slash, base, base_len + 1); - } - } - - free (malloc_dir); - - if (file_name == NULL) - /* Out of memory. Treat the file as empty. */ - cp = ""; - else - { - int fd; - - /* Open the file. Reject symbolic links on platforms that support - O_NOFOLLOW. This is a security feature. Without it, an attacker - could retrieve parts of the contents (namely, the tail of the - first line that starts with "* ") of an arbitrary file by placing - a symbolic link to that file under the name "charset.alias" in - some writable directory and defining the environment variable - CHARSETALIASDIR to point to that directory. */ - fd = open (file_name, - O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); - if (fd < 0) - /* File not found. Treat it as empty. */ - cp = ""; - else - { - FILE *fp; - - fp = fdopen (fd, "r"); - if (fp == NULL) - { - /* Out of memory. Treat the file as empty. */ - close (fd); - cp = ""; - } - else - { - /* Parse the file's contents. */ - char *res_ptr = NULL; - size_t res_size = 0; - - for (;;) - { - int c; - char buf1[50+1]; - char buf2[50+1]; - size_t l1, l2; - char *old_res_ptr; - - c = getc (fp); - if (c == EOF) - break; - if (c == '\n' || c == ' ' || c == '\t') - continue; - if (c == '#') - { - /* Skip comment, to end of line. */ - do - c = getc (fp); - while (!(c == EOF || c == '\n')); - if (c == EOF) - break; - continue; - } - ungetc (c, fp); - if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) - break; - l1 = strlen (buf1); - l2 = strlen (buf2); - old_res_ptr = res_ptr; - if (res_size == 0) - { - res_size = l1 + 1 + l2 + 1; - res_ptr = (char *) malloc (res_size + 1); - } - else - { - res_size += l1 + 1 + l2 + 1; - res_ptr = (char *) realloc (res_ptr, res_size + 1); - } - if (res_ptr == NULL) - { - /* Out of memory. */ - res_size = 0; - free (old_res_ptr); - break; - } - strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); - strcpy (res_ptr + res_size - (l2 + 1), buf2); - } - fclose (fp); - if (res_size == 0) - cp = ""; - else - { - *(res_ptr + res_size) = '\0'; - cp = res_ptr; - } - } - } - - free (file_name); - } +# endif #else -# if defined DARWIN7 - /* To avoid the trouble of installing a file that is shared by many - GNU packages -- many packaging systems have problems with this --, - simply inline the aliases here. */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-4" "\0" "ISO-8859-4" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - "ISO8859-13" "\0" "ISO-8859-13" "\0" - "ISO8859-15" "\0" "ISO-8859-15" "\0" - "KOI8-R" "\0" "KOI8-R" "\0" - "KOI8-U" "\0" "KOI8-U" "\0" - "CP866" "\0" "CP866" "\0" - "CP949" "\0" "CP949" "\0" - "CP1131" "\0" "CP1131" "\0" - "CP1251" "\0" "CP1251" "\0" - "eucCN" "\0" "GB2312" "\0" - "GB2312" "\0" "GB2312" "\0" - "eucJP" "\0" "EUC-JP" "\0" - "eucKR" "\0" "EUC-KR" "\0" - "Big5" "\0" "BIG5" "\0" - "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" - "GBK" "\0" "GBK" "\0" - "GB18030" "\0" "GB18030" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "ARMSCII-8" "\0" "ARMSCII-8" "\0" - "PT154" "\0" "PT154" "\0" - /*"ISCII-DEV" "\0" "?" "\0"*/ - "*" "\0" "UTF-8" "\0"; -# endif +/* On these platforms, we use a mapping from locale name to GNU canonical + encoding name. */ -# if defined VMS - /* To avoid the troubles of an extra file charset.alias_vms in the - sources of many GNU packages, simply inline the aliases here. */ - /* The list of encodings is taken from the OpenVMS 7.3-1 documentation - "Compaq C Run-Time Library Reference Manual for OpenVMS systems" - section 10.7 "Handling Different Character Sets". */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-8" "\0" "ISO-8859-8" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - /* Japanese */ - "eucJP" "\0" "EUC-JP" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "DECKANJI" "\0" "DEC-KANJI" "\0" - "SDECKANJI" "\0" "EUC-JP" "\0" - /* Chinese */ - "eucTW" "\0" "EUC-TW" "\0" - "DECHANYU" "\0" "DEC-HANYU" "\0" - "DECHANZI" "\0" "GB2312" "\0" - /* Korean */ - "DECKOREAN" "\0" "EUC-KR" "\0"; -# endif +struct table_entry +{ + const char locale[17+1]; + const char canonical[11+1]; +}; -# if defined WINDOWS_NATIVE || defined __CYGWIN__ - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - cp = "CP936" "\0" "GBK" "\0" - "CP1361" "\0" "JOHAB" "\0" - "CP20127" "\0" "ASCII" "\0" - "CP20866" "\0" "KOI8-R" "\0" - "CP20936" "\0" "GB2312" "\0" - "CP21866" "\0" "KOI8-RU" "\0" - "CP28591" "\0" "ISO-8859-1" "\0" - "CP28592" "\0" "ISO-8859-2" "\0" - "CP28593" "\0" "ISO-8859-3" "\0" - "CP28594" "\0" "ISO-8859-4" "\0" - "CP28595" "\0" "ISO-8859-5" "\0" - "CP28596" "\0" "ISO-8859-6" "\0" - "CP28597" "\0" "ISO-8859-7" "\0" - "CP28598" "\0" "ISO-8859-8" "\0" - "CP28599" "\0" "ISO-8859-9" "\0" - "CP28605" "\0" "ISO-8859-15" "\0" - "CP38598" "\0" "ISO-8859-8" "\0" - "CP51932" "\0" "EUC-JP" "\0" - "CP51936" "\0" "GB2312" "\0" - "CP51949" "\0" "EUC-KR" "\0" - "CP51950" "\0" "EUC-TW" "\0" - "CP54936" "\0" "GB18030" "\0" - "CP65001" "\0" "UTF-8" "\0"; +/* Table of platform-dependent mappings, sorted in ascending order. */ +static const struct table_entry locale_table[] = + { +# if defined __FreeBSD__ /* FreeBSD 4.2 */ + { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, + { "da_DK.DIS_8859-15", "ISO-8859-15" }, + { "da_DK.ISO_8859-1", "ISO-8859-1" }, + { "de_AT.DIS_8859-15", "ISO-8859-15" }, + { "de_AT.ISO_8859-1", "ISO-8859-1" }, + { "de_CH.DIS_8859-15", "ISO-8859-15" }, + { "de_CH.ISO_8859-1", "ISO-8859-1" }, + { "de_DE.DIS_8859-15", "ISO-8859-15" }, + { "de_DE.ISO_8859-1", "ISO-8859-1" }, + { "en_AU.DIS_8859-15", "ISO-8859-15" }, + { "en_AU.ISO_8859-1", "ISO-8859-1" }, + { "en_CA.DIS_8859-15", "ISO-8859-15" }, + { "en_CA.ISO_8859-1", "ISO-8859-1" }, + { "en_GB.DIS_8859-15", "ISO-8859-15" }, + { "en_GB.ISO_8859-1", "ISO-8859-1" }, + { "en_US.DIS_8859-15", "ISO-8859-15" }, + { "en_US.ISO_8859-1", "ISO-8859-1" }, + { "es_ES.DIS_8859-15", "ISO-8859-15" }, + { "es_ES.ISO_8859-1", "ISO-8859-1" }, + { "fi_FI.DIS_8859-15", "ISO-8859-15" }, + { "fi_FI.ISO_8859-1", "ISO-8859-1" }, + { "fr_BE.DIS_8859-15", "ISO-8859-15" }, + { "fr_BE.ISO_8859-1", "ISO-8859-1" }, + { "fr_CA.DIS_8859-15", "ISO-8859-15" }, + { "fr_CA.ISO_8859-1", "ISO-8859-1" }, + { "fr_CH.DIS_8859-15", "ISO-8859-15" }, + { "fr_CH.ISO_8859-1", "ISO-8859-1" }, + { "fr_FR.DIS_8859-15", "ISO-8859-15" }, + { "fr_FR.ISO_8859-1", "ISO-8859-1" }, + { "hr_HR.ISO_8859-2", "ISO-8859-2" }, + { "hu_HU.ISO_8859-2", "ISO-8859-2" }, + { "is_IS.DIS_8859-15", "ISO-8859-15" }, + { "is_IS.ISO_8859-1", "ISO-8859-1" }, + { "it_CH.DIS_8859-15", "ISO-8859-15" }, + { "it_CH.ISO_8859-1", "ISO-8859-1" }, + { "it_IT.DIS_8859-15", "ISO-8859-15" }, + { "it_IT.ISO_8859-1", "ISO-8859-1" }, + { "ja_JP.EUC", "EUC-JP" }, + { "ja_JP.SJIS", "SHIFT_JIS" }, + { "ja_JP.Shift_JIS", "SHIFT_JIS" }, + { "ko_KR.EUC", "EUC-KR" }, + { "la_LN.ASCII", "ASCII" }, + { "la_LN.DIS_8859-15", "ISO-8859-15" }, + { "la_LN.ISO_8859-1", "ISO-8859-1" }, + { "la_LN.ISO_8859-2", "ISO-8859-2" }, + { "la_LN.ISO_8859-4", "ISO-8859-4" }, + { "lt_LN.ASCII", "ASCII" }, + { "lt_LN.DIS_8859-15", "ISO-8859-15" }, + { "lt_LN.ISO_8859-1", "ISO-8859-1" }, + { "lt_LN.ISO_8859-2", "ISO-8859-2" }, + { "lt_LT.ISO_8859-4", "ISO-8859-4" }, + { "nl_BE.DIS_8859-15", "ISO-8859-15" }, + { "nl_BE.ISO_8859-1", "ISO-8859-1" }, + { "nl_NL.DIS_8859-15", "ISO-8859-15" }, + { "nl_NL.ISO_8859-1", "ISO-8859-1" }, + { "no_NO.DIS_8859-15", "ISO-8859-15" }, + { "no_NO.ISO_8859-1", "ISO-8859-1" }, + { "pl_PL.ISO_8859-2", "ISO-8859-2" }, + { "pt_PT.DIS_8859-15", "ISO-8859-15" }, + { "pt_PT.ISO_8859-1", "ISO-8859-1" }, + { "ru_RU.CP866", "CP866" }, + { "ru_RU.ISO_8859-5", "ISO-8859-5" }, + { "ru_RU.KOI8-R", "KOI8-R" }, + { "ru_SU.CP866", "CP866" }, + { "ru_SU.ISO_8859-5", "ISO-8859-5" }, + { "ru_SU.KOI8-R", "KOI8-R" }, + { "sl_SI.ISO_8859-2", "ISO-8859-2" }, + { "sv_SE.DIS_8859-15", "ISO-8859-15" }, + { "sv_SE.ISO_8859-1", "ISO-8859-1" }, + { "uk_UA.KOI8-U", "KOI8-U" }, + { "zh_CN.EUC", "GB2312" }, + { "zh_TW.BIG5", "BIG5" }, + { "zh_TW.Big5", "BIG5" } +# define locale_table_defined # endif -# if defined OS2 - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - /* The list of encodings is taken from "List of OS/2 Codepages" - by Alex Taylor: - . - See also "IBM Globalization - Code page identifiers": - . */ - cp = "CP813" "\0" "ISO-8859-7" "\0" - "CP878" "\0" "KOI8-R" "\0" - "CP819" "\0" "ISO-8859-1" "\0" - "CP912" "\0" "ISO-8859-2" "\0" - "CP913" "\0" "ISO-8859-3" "\0" - "CP914" "\0" "ISO-8859-4" "\0" - "CP915" "\0" "ISO-8859-5" "\0" - "CP916" "\0" "ISO-8859-8" "\0" - "CP920" "\0" "ISO-8859-9" "\0" - "CP921" "\0" "ISO-8859-13" "\0" - "CP923" "\0" "ISO-8859-15" "\0" - "CP954" "\0" "EUC-JP" "\0" - "CP964" "\0" "EUC-TW" "\0" - "CP970" "\0" "EUC-KR" "\0" - "CP1089" "\0" "ISO-8859-6" "\0" - "CP1208" "\0" "UTF-8" "\0" - "CP1381" "\0" "GB2312" "\0" - "CP1386" "\0" "GBK" "\0" - "CP3372" "\0" "EUC-JP" "\0"; +# if defined __DJGPP__ /* DOS / DJGPP 2.03 */ + /* The encodings given here may not all be correct. + If you find that the encoding given for your language and + country is not the one your DOS machine actually uses, just + correct it in this file, and send a mail to + Juan Manuel Guerrero + and . */ + { "C", "ASCII" }, + { "ar", "CP864" }, + { "ar_AE", "CP864" }, + { "ar_DZ", "CP864" }, + { "ar_EG", "CP864" }, + { "ar_IQ", "CP864" }, + { "ar_IR", "CP864" }, + { "ar_JO", "CP864" }, + { "ar_KW", "CP864" }, + { "ar_MA", "CP864" }, + { "ar_OM", "CP864" }, + { "ar_QA", "CP864" }, + { "ar_SA", "CP864" }, + { "ar_SY", "CP864" }, + { "be", "CP866" }, + { "be_BE", "CP866" }, + { "bg", "CP866" }, /* not CP855 ?? */ + { "bg_BG", "CP866" }, /* not CP855 ?? */ + { "ca", "CP850" }, + { "ca_ES", "CP850" }, + { "cs", "CP852" }, + { "cs_CZ", "CP852" }, + { "da", "CP865" }, /* not CP850 ?? */ + { "da_DK", "CP865" }, /* not CP850 ?? */ + { "de", "CP850" }, + { "de_AT", "CP850" }, + { "de_CH", "CP850" }, + { "de_DE", "CP850" }, + { "el", "CP869" }, + { "el_GR", "CP869" }, + { "en", "CP850" }, + { "en_AU", "CP850" }, /* not CP437 ?? */ + { "en_CA", "CP850" }, + { "en_GB", "CP850" }, + { "en_NZ", "CP437" }, + { "en_US", "CP437" }, + { "en_ZA", "CP850" }, /* not CP437 ?? */ + { "eo", "CP850" }, + { "eo_EO", "CP850" }, + { "es", "CP850" }, + { "es_AR", "CP850" }, + { "es_BO", "CP850" }, + { "es_CL", "CP850" }, + { "es_CO", "CP850" }, + { "es_CR", "CP850" }, + { "es_CU", "CP850" }, + { "es_DO", "CP850" }, + { "es_EC", "CP850" }, + { "es_ES", "CP850" }, + { "es_GT", "CP850" }, + { "es_HN", "CP850" }, + { "es_MX", "CP850" }, + { "es_NI", "CP850" }, + { "es_PA", "CP850" }, + { "es_PE", "CP850" }, + { "es_PY", "CP850" }, + { "es_SV", "CP850" }, + { "es_UY", "CP850" }, + { "es_VE", "CP850" }, + { "et", "CP850" }, + { "et_EE", "CP850" }, + { "eu", "CP850" }, + { "eu_ES", "CP850" }, + { "fi", "CP850" }, + { "fi_FI", "CP850" }, + { "fr", "CP850" }, + { "fr_BE", "CP850" }, + { "fr_CA", "CP850" }, + { "fr_CH", "CP850" }, + { "fr_FR", "CP850" }, + { "ga", "CP850" }, + { "ga_IE", "CP850" }, + { "gd", "CP850" }, + { "gd_GB", "CP850" }, + { "gl", "CP850" }, + { "gl_ES", "CP850" }, + { "he", "CP862" }, + { "he_IL", "CP862" }, + { "hr", "CP852" }, + { "hr_HR", "CP852" }, + { "hu", "CP852" }, + { "hu_HU", "CP852" }, + { "id", "CP850" }, /* not CP437 ?? */ + { "id_ID", "CP850" }, /* not CP437 ?? */ + { "is", "CP861" }, /* not CP850 ?? */ + { "is_IS", "CP861" }, /* not CP850 ?? */ + { "it", "CP850" }, + { "it_CH", "CP850" }, + { "it_IT", "CP850" }, + { "ja", "CP932" }, + { "ja_JP", "CP932" }, + { "kr", "CP949" }, /* not CP934 ?? */ + { "kr_KR", "CP949" }, /* not CP934 ?? */ + { "lt", "CP775" }, + { "lt_LT", "CP775" }, + { "lv", "CP775" }, + { "lv_LV", "CP775" }, + { "mk", "CP866" }, /* not CP855 ?? */ + { "mk_MK", "CP866" }, /* not CP855 ?? */ + { "mt", "CP850" }, + { "mt_MT", "CP850" }, + { "nb", "CP865" }, /* not CP850 ?? */ + { "nb_NO", "CP865" }, /* not CP850 ?? */ + { "nl", "CP850" }, + { "nl_BE", "CP850" }, + { "nl_NL", "CP850" }, + { "nn", "CP865" }, /* not CP850 ?? */ + { "nn_NO", "CP865" }, /* not CP850 ?? */ + { "no", "CP865" }, /* not CP850 ?? */ + { "no_NO", "CP865" }, /* not CP850 ?? */ + { "pl", "CP852" }, + { "pl_PL", "CP852" }, + { "pt", "CP850" }, + { "pt_BR", "CP850" }, + { "pt_PT", "CP850" }, + { "ro", "CP852" }, + { "ro_RO", "CP852" }, + { "ru", "CP866" }, + { "ru_RU", "CP866" }, + { "sk", "CP852" }, + { "sk_SK", "CP852" }, + { "sl", "CP852" }, + { "sl_SI", "CP852" }, + { "sq", "CP852" }, + { "sq_AL", "CP852" }, + { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sv", "CP850" }, + { "sv_SE", "CP850" }, + { "th", "CP874" }, + { "th_TH", "CP874" }, + { "tr", "CP857" }, + { "tr_TR", "CP857" }, + { "uk", "CP1125" }, + { "uk_UA", "CP1125" }, + { "zh_CN", "GBK" }, + { "zh_TW", "CP950" } /* not CP938 ?? */ +# define locale_table_defined # endif +# ifndef locale_table_defined + /* Just a dummy entry, to avoid a C syntax error. */ + { "", "" } +# endif + }; + #endif - charset_aliases = cp; - } - - return cp; -} /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. + into one of the canonical names listed in localcharset.h. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ @@ -397,9 +824,8 @@ const char * locale_charset (void) { const char *codeset; - const char *aliases; -#if !(defined WINDOWS_NATIVE || defined OS2) +#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 # if HAVE_LANGINFO_CODESET @@ -462,37 +888,11 @@ locale_charset (void) } # endif -# else + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; - /* On old systems which lack it, use setlocale or getenv. */ - const char *locale = NULL; - - /* But most old systems don't have a complete set of locales. Some - (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't - use setlocale here; it would return "C" when it doesn't support the - locale name the user has set. */ -# if 0 - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - } - - /* On some old systems, one used to set locale = "iso8859_1". On others, - you set it to "language_COUNTRY.charset". In any case, we resolve it - through the charset.alias file. */ - codeset = locale; - -# endif - -#elif defined WINDOWS_NATIVE +# elif defined WINDOWS_NATIVE static char buf[2 + 10 + 1]; @@ -524,9 +924,14 @@ locale_charset (void) encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); } - codeset = buf; + /* For a locale name such as "French_France.65001", in Windows 10, + setlocale now returns "French_France.utf8" instead. */ + if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) + codeset = "UTF-8"; + else + codeset = buf; -#elif defined OS2 +# elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; @@ -583,28 +988,144 @@ locale_charset (void) } } -#endif +# else - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; +# error "Add code for other platforms here." - /* Resolve alias. */ - for (aliases = get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (strcmp (codeset, aliases) == 0 - || (aliases[0] == '*' && aliases[1] == '\0')) +# endif + + /* Resolve alias. */ + { +# ifdef alias_table_defined + /* On some platforms, UTF-8 locales are the most frequently used ones. + Speed up the common case and slow down the less common cases by + testing for this case first. */ +# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ + if (strcmp (codeset, "UTF-8") == 0) + goto done_table_lookup; + else +# endif { - codeset = aliases + strlen (aliases) + 1; - break; + const struct table_entry * const table = alias_table; + size_t const table_size = + sizeof (alias_table) / sizeof (struct table_entry); + /* The table is sorted. Perform a binary search. */ + size_t hi = table_size; + size_t lo = 0; + while (lo < hi) + { + /* Invariant: + for i < lo, strcmp (table[i].alias, codeset) < 0, + for i >= hi, strcmp (table[i].alias, codeset) > 0. */ + size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ + int cmp = strcmp (table[mid].alias, codeset); + if (cmp < 0) + lo = mid + 1; + else if (cmp > 0) + hi = mid; + else + { + /* Found an i with + strcmp (table[i].alias, codeset) == 0. */ + codeset = table[mid].canonical; + goto done_table_lookup; + } + } } + if (0) + done_table_lookup: ; + else +# endif + { + /* Did not find it in the table. */ + /* On Mac OS X, all modern locales use the UTF-8 encoding. + BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ +# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ + codeset = "UTF-8"; +# else + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; +# endif + } + } - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - if (codeset[0] == '\0') - codeset = "ASCII"; +#else + + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; + + /* But most old systems don't have a complete set of locales. Some + (like DJGPP) have only the C locale. Therefore we don't use setlocale + here; it would return "C" when it doesn't support the locale name the + user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + if (locale == NULL) + locale = ""; + } + } + + /* Map locale name to canonical encoding name. */ + { +# ifdef locale_table_defined + const struct table_entry * const table = locale_table; + size_t const table_size = + sizeof (locale_table) / sizeof (struct table_entry); + /* The table is sorted. Perform a binary search. */ + size_t hi = table_size; + size_t lo = 0; + while (lo < hi) + { + /* Invariant: + for i < lo, strcmp (table[i].locale, locale) < 0, + for i >= hi, strcmp (table[i].locale, locale) > 0. */ + size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ + int cmp = strcmp (table[mid].locale, locale); + if (cmp < 0) + lo = mid + 1; + else if (cmp > 0) + hi = mid; + else + { + /* Found an i with + strcmp (table[i].locale, locale) == 0. */ + codeset = table[mid].canonical; + goto done_table_lookup; + } + } + if (0) + done_table_lookup: ; + else +# endif + { + /* Did not find it in the table. */ + /* On Mac OS X, all modern locales use the UTF-8 encoding. + BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ +# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ + codeset = "UTF-8"; +# else + /* The canonical name cannot be determined. */ + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + codeset = "ASCII"; +# endif + } + } + +#endif #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" diff --git a/lib/localcharset.h b/lib/localcharset.h index a2e2a7b..7d0d771 100644 --- a/lib/localcharset.h +++ b/lib/localcharset.h @@ -1,5 +1,5 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + with this program; if not, see . */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H @@ -25,12 +25,106 @@ extern "C" { /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. + into one of the canonical names listed below. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); +/* About GNU canonical names for character encodings: + + Every canonical name must be supported by GNU libiconv. Support by GNU libc + is also desirable. + + The name is case insensitive. Usually an upper case MIME charset name is + preferred. + + The current list of these GNU canonical names is: + + name MIME? used by which systems + (darwin = Mac OS X, windows = native Windows) + + ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin + ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-3 Y glibc solaris cygwin + ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin + ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-6 Y glibc aix hpux solaris cygwin + ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-8 Y glibc aix hpux osf solaris cygwin + ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin + ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-14 glibc cygwin + ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin + KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin + KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin + KOI8-T glibc + CP437 dos + CP775 dos + CP850 aix osf dos + CP852 dos + CP855 dos + CP856 aix + CP857 dos + CP861 dos + CP862 dos + CP864 dos + CP865 dos + CP866 freebsd netbsd openbsd darwin dos + CP869 dos + CP874 windows dos + CP922 aix + CP932 aix cygwin windows dos + CP943 aix + CP949 osf darwin windows dos + CP950 windows dos + CP1046 aix + CP1124 aix + CP1125 dos + CP1129 aix + CP1131 freebsd darwin + CP1250 windows + CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows + CP1252 aix windows + CP1253 windows + CP1254 windows + CP1255 glibc windows + CP1256 windows + CP1257 windows + GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin + EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-TW glibc aix hpux irix osf solaris netbsd + BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin + BIG5-HKSCS glibc hpux solaris netbsd darwin + GBK glibc aix osf solaris freebsd darwin cygwin windows dos + GB18030 glibc hpux solaris freebsd netbsd darwin + SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin + JOHAB glibc solaris windows + TIS-620 glibc aix hpux osf solaris cygwin + VISCII Y glibc + TCVN5712-1 glibc + ARMSCII-8 glibc freebsd netbsd darwin + GEORGIAN-PS glibc cygwin + PT154 glibc netbsd cygwin + HP-ROMAN8 hpux + HP-ARABIC8 hpux + HP-GREEK8 hpux + HP-HEBREW8 hpux + HP-TURKISH8 hpux + HP-KANA8 hpux + DEC-KANJI osf + DEC-HANYU osf + UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin + + Note: Names which are not marked as being a MIME name should not be used in + Internet protocols for information interchange (mail, news, etc.). + + Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications + must understand both names and treat them as equivalent. + */ + #ifdef __cplusplus } diff --git a/lib/locale.in.h b/lib/locale.in.h index 9eb43f9..97479db 100644 --- a/lib/locale.in.h +++ b/lib/locale.in.h @@ -1,5 +1,5 @@ /* A POSIX . - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. 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 @@ -12,17 +12,20 @@ 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 . */ + along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -#ifdef _GL_ALREADY_INCLUDING_LOCALE_H +#if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ + || defined _GL_ALREADY_INCLUDING_LOCALE_H -/* Special invocation conventions to handle Solaris header files - (through Solaris 10) when combined with gettext's libintl.h. */ +/* Special invocation convention: + - Inside mingw header files, + - To handle Solaris header files (through Solaris 10) when combined + with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ @@ -69,7 +72,7 @@ struct lconv /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See - */ + */ /* Symbol used as decimal point. */ char *decimal_point; @@ -81,7 +84,7 @@ struct lconv char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See - */ + */ /* Symbol used as decimal point. */ char *mon_decimal_point; @@ -187,11 +190,40 @@ _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " # endif #endif -#if @GNULIB_DUPLOCALE@ +#if /*@GNULIB_NEWLOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_NEWLOCALE@) +# if @REPLACE_NEWLOCALE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef newlocale +# define newlocale rpl_newlocale +# define GNULIB_defined_newlocale 1 +# endif +_GL_FUNCDECL_RPL (newlocale, locale_t, + (int category_mask, const char *name, locale_t base) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (newlocale, locale_t, + (int category_mask, const char *name, locale_t base)); +# else +# if @HAVE_NEWLOCALE@ +_GL_CXXALIAS_SYS (newlocale, locale_t, + (int category_mask, const char *name, locale_t base)); +# endif +# endif +# if @HAVE_NEWLOCALE@ +_GL_CXXALIASWARN (newlocale); +# endif +#elif defined GNULIB_POSIXCHECK +# undef newlocale +# if HAVE_RAW_DECL_NEWLOCALE +_GL_WARN_ON_USE (newlocale, "newlocale is not portable"); +# endif +#endif + +#if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @HAVE_DUPLOCALE@) # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale +# define GNULIB_defined_duplocale 1 # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); @@ -211,6 +243,30 @@ _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " # endif #endif +#if /*@GNULIB_FREELOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_FREELOCALE@) +# if @REPLACE_FREELOCALE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef freelocale +# define freelocale rpl_freelocale +# define GNULIB_defined_freelocale 1 +# endif +_GL_FUNCDECL_RPL (freelocale, void, (locale_t locale) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (freelocale, void, (locale_t locale)); +# else +# if @HAVE_FREELOCALE@ +_GL_CXXALIAS_SYS (freelocale, void, (locale_t locale)); +# endif +# endif +# if @HAVE_FREELOCALE@ +_GL_CXXALIASWARN (freelocale); +# endif +#elif defined GNULIB_POSIXCHECK +# undef freelocale +# if HAVE_RAW_DECL_FREELOCALE +_GL_WARN_ON_USE (freelocale, "freelocale is not portable"); +# endif +#endif + #endif /* _@GUARD_PREFIX@_LOCALE_H */ -#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ +#endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ diff --git a/lib/localtime-buffer.c b/lib/localtime-buffer.c index f84ad3e..b65ea45 100644 --- a/lib/localtime-buffer.c +++ b/lib/localtime-buffer.c @@ -1,6 +1,6 @@ /* Provide access to the last buffer returned by localtime() or gmtime(). - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ /* written by Jim Meyering */ @@ -34,6 +34,7 @@ struct tm *localtime_buffer_addr = &tm_zero_buffer; struct tm * rpl_localtime (time_t const *timep) +#undef localtime { struct tm *tm = localtime (timep); @@ -46,6 +47,7 @@ rpl_localtime (time_t const *timep) /* Same as above, since gmtime and localtime use the same buffer. */ struct tm * rpl_gmtime (time_t const *timep) +#undef gmtime { struct tm *tm = gmtime (timep); diff --git a/lib/localtime-buffer.h b/lib/localtime-buffer.h index 483a579..031111a 100644 --- a/lib/localtime-buffer.h +++ b/lib/localtime-buffer.h @@ -1,6 +1,6 @@ /* Provide access to the last buffer returned by localtime() or gmtime(). - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ /* written by Jim Meyering */ diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c index 7415fff..1aad22c 100644 --- a/lib/mbrtowc.c +++ b/lib/mbrtowc.c @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2002, 2005-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include @@ -34,14 +34,67 @@ # include "localcharset.h" # include "streq.h" # include "verify.h" +# include "glthread/lock.h" -#ifndef FALLTHROUGH -# if __GNUC__ < 7 -# define FALLTHROUGH ((void) 0) -# else -# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# ifndef FALLTHROUGH +# if __GNUC__ < 7 +# define FALLTHROUGH ((void) 0) +# else +# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# endif # endif -#endif + +/* Returns a classification of special values of the encoding of the current + locale. */ +typedef enum { + enc_other, /* other */ + enc_utf8, /* UTF-8 */ + enc_eucjp, /* EUC-JP */ + enc_94, /* EUC-KR, GB2312, BIG5 */ + enc_euctw, /* EUC-TW */ + enc_gb18030, /* GB18030 */ + enc_sjis /* SJIS */ +} enc_t; +static inline enc_t +locale_enc (void) +{ + const char *encoding = locale_charset (); + if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + return enc_utf8; + if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) + return enc_eucjp; + if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) + || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) + return enc_94; + if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) + return enc_euctw; + if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) + return enc_gb18030; + if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) + return enc_sjis; + return enc_other; +} + +# if GNULIB_WCHAR_SINGLE +/* When we know that the locale does not change, provide a speedup by + caching the value of locale_enc. */ +static int cached_locale_enc = -1; +static inline enc_t +locale_enc_cached (void) +{ + if (cached_locale_enc < 0) + cached_locale_enc = locale_enc (); + return cached_locale_enc; +} +# else +/* By default, don't make assumptions, hence no caching. */ +# define locale_enc_cached locale_enc +# endif + +/* This lock protects the internal state of mbtowc against multiple simultaneous + calls of mbrtowc. */ +gl_lock_define_initialized(static, mbtowc_lock) verify (sizeof (mbstate_t) >= 4); @@ -72,6 +125,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) char buf[4]; const char *p; size_t m; + enc_t enc; + int res; switch (nstate) { @@ -104,231 +159,296 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) /* Here m > 0. */ -# if __GLIBC__ || defined __UCLIBC__ - /* Work around bug */ - mbtowc (NULL, NULL, 0); -# endif - { - int res = mbtowc (pwc, p, m); + enc = locale_enc_cached (); - if (res >= 0) - { - if (pwc != NULL && ((*pwc == 0) != (res == 0))) - abort (); - if (nstate >= (res > 0 ? res : 1)) - abort (); - res -= nstate; - pstate[0] = 0; - return res; - } - - /* mbtowc does not distinguish between invalid and incomplete multibyte - sequences. But mbrtowc needs to make this distinction. - There are two possible approaches: - - Use iconv() and its return value. - - Use built-in knowledge about the possible encodings. - Given the low quality of implementation of iconv() on the systems that - lack mbrtowc(), we use the second approach. - The possible encodings are: - - 8-bit encodings, - - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - - UTF-8. - Use specialized code for each. */ - if (m >= 4 || m >= MB_CUR_MAX) - goto invalid; - /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ + if (enc == enc_utf8) /* UTF-8 */ { - const char *encoding = locale_charset (); + /* Achieve multi-thread safety by not calling mbtowc() at all. */ + /* Cf. unistr/u8-mbtouc.c. */ + unsigned char c = (unsigned char) p[0]; - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + if (c < 0x80) { - /* Cf. unistr/u8-mblen.c. */ - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xc2) + if (pwc != NULL) + *pwc = c; + res = (c == 0 ? 0 : 1); + goto success; + } + if (c >= 0xc2) + { + if (c < 0xe0) { - if (c < 0xe0) + if (m == 1) + goto incomplete; + else /* m >= 2 */ { - if (m == 1) - goto incomplete; - } - else if (c < 0xf0) - { - if (m == 1) - goto incomplete; - if (m == 2) - { - unsigned char c2 = (unsigned char) p[1]; + unsigned char c2 = (unsigned char) p[1]; - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xe1 || c2 >= 0xa0) - && (c != 0xed || c2 < 0xa0)) - goto incomplete; + if ((c2 ^ 0x80) < 0x40) + { + if (pwc != NULL) + *pwc = ((unsigned int) (c & 0x1f) << 6) + | (unsigned int) (c2 ^ 0x80); + res = 2; + goto success; } } - else if (c <= 0xf4) + } + else if (c < 0xf0) + { + if (m == 1) + goto incomplete; + else { - if (m == 1) - goto incomplete; - else /* m == 2 || m == 3 */ + unsigned char c2 = (unsigned char) p[1]; + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xe1 || c2 >= 0xa0) + && (c != 0xed || c2 < 0xa0)) { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xf1 || c2 >= 0x90) - && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) + if (m == 2) + goto incomplete; + else /* m >= 3 */ { - if (m == 2) - goto incomplete; - else /* m == 3 */ - { - unsigned char c3 = (unsigned char) p[2]; + unsigned char c3 = (unsigned char) p[2]; - if ((c3 ^ 0x80) < 0x40) - goto incomplete; + if ((c3 ^ 0x80) < 0x40) + { + if (pwc != NULL) + *pwc = ((unsigned int) (c & 0x0f) << 12) + | ((unsigned int) (c2 ^ 0x80) << 6) + | (unsigned int) (c3 ^ 0x80); + res = 3; + goto success; } } } } } - goto invalid; - } - - /* As a reference for this code, you can use the GNU libiconv - implementation. Look for uses of the RET_TOOFEW macro. */ - - if (STREQ_OPT (encoding, - "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) - { - if (m == 1) + else if (c <= 0xf4) { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) + if (m == 1) goto incomplete; - } - if (m == 2) - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8f) + else { unsigned char c2 = (unsigned char) p[1]; - if (c2 >= 0xa1 && c2 < 0xff) - goto incomplete; - } - } - goto invalid; - } - if (STREQ_OPT (encoding, - "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - || STREQ_OPT (encoding, - "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) - || STREQ_OPT (encoding, - "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xa1 && c < 0xff) - goto incomplete; - } - goto invalid; - } - if (STREQ_OPT (encoding, - "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8e) - goto incomplete; - } - goto invalid; - } - if (STREQ_OPT (encoding, - "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0x90 && c <= 0xe3) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0x30 && c2 <= 0x39) + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xf1 || c2 >= 0x90) + && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) { if (m == 2) goto incomplete; - else /* m == 3 */ + else { unsigned char c3 = (unsigned char) p[2]; - if (c3 >= 0x81 && c3 <= 0xfe) - goto incomplete; + if ((c3 ^ 0x80) < 0x40) + { + if (m == 3) + goto incomplete; + else /* m >= 4 */ + { + unsigned char c4 = (unsigned char) p[3]; + + if ((c4 ^ 0x80) < 0x40) + { + if (pwc != NULL) + *pwc = ((unsigned int) (c & 0x07) << 18) + | ((unsigned int) (c2 ^ 0x80) << 12) + | ((unsigned int) (c3 ^ 0x80) << 6) + | (unsigned int) (c4 ^ 0x80); + res = 4; + goto success; + } + } + } } } } } - goto invalid; } - if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) - || (c >= 0xf0 && c <= 0xf9)) - goto incomplete; - } - goto invalid; - } - - /* An unknown multibyte encoding. */ - goto incomplete; + goto invalid; } - - incomplete: + else { - size_t k = nstate; - /* Here 0 <= k < m < 4. */ - pstate[++k] = s[0]; - if (k < m) - { - pstate[++k] = s[1]; - if (k < m) - pstate[++k] = s[2]; - } - if (k != m) - abort (); - } - pstate[0] = m; - return (size_t)(-2); + /* The hidden internal state of mbtowc would make this function not + multi-thread safe. Achieve multi-thread safety through a lock. */ + gl_lock_lock (mbtowc_lock); - invalid: - errno = EILSEQ; - /* The conversion state is undefined, says POSIX. */ - return (size_t)(-1); + /* Put the hidden internal state of mbtowc into its initial state. + This is needed at least with glibc, uClibc, and MSVC CRT. + See . */ + mbtowc (NULL, NULL, 0); + + res = mbtowc (pwc, p, m); + + gl_lock_unlock (mbtowc_lock); + + if (res >= 0) + { + if (pwc != NULL && ((*pwc == 0) != (res == 0))) + abort (); + goto success; + } + + /* mbtowc does not distinguish between invalid and incomplete multibyte + sequences. But mbrtowc needs to make this distinction. + There are two possible approaches: + - Use iconv() and its return value. + - Use built-in knowledge about the possible encodings. + Given the low quality of implementation of iconv() on the systems + that lack mbrtowc(), we use the second approach. + The possible encodings are: + - 8-bit encodings, + - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, + - UTF-8 (already handled above). + Use specialized code for each. */ + if (m >= 4 || m >= MB_CUR_MAX) + goto invalid; + /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ + switch (enc) + { + /* As a reference for this code, you can use the GNU libiconv + implementation. Look for uses of the RET_TOOFEW macro. */ + + case enc_eucjp: /* EUC-JP */ + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) + goto incomplete; + } + if (m == 2) + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8f) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0xa1 && c2 < 0xff) + goto incomplete; + } + } + goto invalid; + } + + case enc_94: /* EUC-KR, GB2312, BIG5 */ + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0xa1 && c < 0xff) + goto incomplete; + } + goto invalid; + } + + case enc_euctw: /* EUC-TW */ + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8e) + goto incomplete; + } + goto invalid; + } + + case enc_gb18030: /* GB18030 */ + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0x90 && c <= 0xe3) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0x30 && c2 <= 0x39) + { + if (m == 2) + goto incomplete; + else /* m == 3 */ + { + unsigned char c3 = (unsigned char) p[2]; + + if (c3 >= 0x81 && c3 <= 0xfe) + goto incomplete; + } + } + } + } + goto invalid; + } + + case enc_sjis: /* SJIS */ + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) + || (c >= 0xf0 && c <= 0xf9)) + goto incomplete; + } + goto invalid; + } + + default: + /* An unknown multibyte encoding. */ + goto incomplete; + } + } + + success: + /* res >= 0 is the corrected return value of mbtowc (pwc, p, m). */ + if (nstate >= (res > 0 ? res : 1)) + abort (); + res -= nstate; + pstate[0] = 0; + return res; + + incomplete: + { + size_t k = nstate; + /* Here 0 <= k < m < 4. */ + pstate[++k] = s[0]; + if (k < m) + { + pstate[++k] = s[1]; + if (k < m) + pstate[++k] = s[2]; + } + if (k != m) + abort (); } + pstate[0] = m; + return (size_t)(-2); + + invalid: + errno = EILSEQ; + /* The conversion state is undefined, says POSIX. */ + return (size_t)(-1); } } diff --git a/lib/mbsinit.c b/lib/mbsinit.c index 7580126..5ecaef7 100644 --- a/lib/mbsinit.c +++ b/lib/mbsinit.c @@ -1,5 +1,5 @@ /* Test for initial conversion state. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include @@ -54,7 +54,7 @@ mbsinit (const mbstate_t *ps) int mbsinit (const mbstate_t *ps) { -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ # ifdef __MINGW32__ /* On mingw, 'mbstate_t' is defined as 'int'. */ diff --git a/lib/mbsrtowcs-impl.h b/lib/mbsrtowcs-impl.h index d787c07..110d692 100644 --- a/lib/mbsrtowcs-impl.h +++ b/lib/mbsrtowcs-impl.h @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ size_t mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) diff --git a/lib/mbsrtowcs-state.c b/lib/mbsrtowcs-state.c index 4c213e4..59525e7 100644 --- a/lib/mbsrtowcs-state.c +++ b/lib/mbsrtowcs-state.c @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include @@ -23,7 +23,7 @@ mbstate_t _gl_mbsrtowcs_state /* The state must initially be in the "initial state"; so, zero-initialize it. On most systems, putting it into BSS is sufficient. Not so on Mac OS X 10.3, - see . + see . When it needs an initializer, use 0 or {0} as initializer? 0 only works when mbstate_t is a scalar type (such as when gnulib defines it, or on AIX, IRIX, mingw). {0} works as an initializer in all cases: for a struct diff --git a/lib/mbsrtowcs.c b/lib/mbsrtowcs.c index 7896e94..14f241e 100644 --- a/lib/mbsrtowcs.c +++ b/lib/mbsrtowcs.c @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/mbtowc-impl.h b/lib/mbtowc-impl.h index b53b2eb..f4ab981 100644 --- a/lib/mbtowc-impl.h +++ b/lib/mbtowc-impl.h @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ /* We don't need a static internal state, because the encoding is not state dependent, and when mbrtowc returns (size_t)(-2). we throw the result diff --git a/lib/mbtowc.c b/lib/mbtowc.c index 118754f..77a8472 100644 --- a/lib/mbtowc.c +++ b/lib/mbtowc.c @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/memchr.c b/lib/memchr.c index 3481260..4e0c5f9 100644 --- a/lib/memchr.c +++ b/lib/memchr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2017 +/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2019 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program. If not, see . */ +along with this program. If not, see . */ #ifndef _LIBC # include diff --git a/lib/memchr.valgrind b/lib/memchr.valgrind index 60f247e..1d60e29 100644 --- a/lib/memchr.valgrind +++ b/lib/memchr.valgrind @@ -1,4 +1,20 @@ # Suppress a valgrind message about use of uninitialized memory in memchr(). + +# Copyright (C) 2009-2019 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. diff --git a/lib/monetary.in.h b/lib/monetary.in.h new file mode 100644 index 0000000..be02910 --- /dev/null +++ b/lib/monetary.in.h @@ -0,0 +1,109 @@ +/* Wrapper around . + Copyright (C) 2017-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#ifndef _@GUARD_PREFIX@_MONETARY_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_MONETARY_H@ +# @INCLUDE_NEXT@ @NEXT_MONETARY_H@ +#endif + +#ifndef _@GUARD_PREFIX@_MONETARY_H +#define _@GUARD_PREFIX@_MONETARY_H + +#if @GNULIB_STRFMON_L@ +# if @HAVE_XLOCALE_H@ +/* Get locale_t on Mac OS X 10.12. */ +# include +# endif +/* Get locale_t on glibc 2.5. */ +# include +#endif + +/* Like in . */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ +#endif + +/* _GL_ATTRIBUTE_FORMAT_STRFMON + indicates to GCC that the function takes a format string and arguments, + where the format string directives are the ones standardized by ISO C99 + and POSIX. */ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) +# define _GL_ATTRIBUTE_FORMAT_STRFMON(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__gnu_strfmon__, formatstring_parameter, first_argument)) +#elif __GNUC__ >= 3 +# define _GL_ATTRIBUTE_FORMAT_STRFMON(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__strfmon__, formatstring_parameter, first_argument)) +#else +# define _GL_ATTRIBUTE_FORMAT_STRFMON(formatstring_parameter, first_argument) /* empty */ +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#if @GNULIB_STRFMON_L@ +/* Converts a monetary value to a string. + See the POSIX:2008 specification + + $Id$ + + This file contains strings that are present in older versions of + various libraries but are no longer present in files distributed as + part of the GNU Portability Library. This allows programs to provide + translations for strings used in, for example, older versions of the + GNU C Library as released with various Linux distributions. + + This file is NOT intended to be linked into any program. Instead, it + is simply meant to be listed in po/POTFILES.in. + + + This file is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see https://www.gnu.org/licenses/. +*/ + + +/************************************************************************ +* From GNU C Library posix/getopt.c * +************************************************************************/ + +const char *glibc_posix_getopt_strings[] = { + /* TRANSLATORS: These strings are used in older versions of various + libraries, such as the GNU C Library as released with various + Linux distributions. */ + N_("%s: option `%s%s' is ambiguous\n"), + N_("%s: option '%s%s' is ambiguous\n"), + N_("%s: option `%s%s' is ambiguous; possibilities:"), + N_("%s: option '%s%s' is ambiguous; possibilities:"), + N_("%s: unrecognized option `%s%s'\n"), + N_("%s: unrecognized option '%s%s'\n"), + N_("%s: option `%s%s' doesn't allow an argument\n"), + N_("%s: option '%s%s' doesn't allow an argument\n"), + N_("%s: option `%s%s' requires an argument\n"), + N_("%s: option '%s%s' requires an argument\n"), + N_("%s: invalid option -- `%c'\n"), + N_("%s: invalid option -- '%c'\n"), + N_("%s: option requires an argument -- `%c'\n"), + N_("%s: option requires an argument -- '%c'\n"), + + N_("%s: option `%s' is ambiguous; possibilities:"), + N_("%s: option '%s' is ambiguous; possibilities:"), + N_("%s: option `%s' is ambiguous\n"), + N_("%s: option '%s' is ambiguous\n"), + N_("%s: option `--%s' doesn't allow an argument\n"), + N_("%s: option '--%s' doesn't allow an argument\n"), + N_("%s: option `%c%s' doesn't allow an argument\n"), + N_("%s: option '%c%s' doesn't allow an argument\n"), + N_("%s: option `--%s' requires an argument\n"), + N_("%s: option '--%s' requires an argument\n"), + N_("%s: unrecognized option `--%s'\n"), + N_("%s: unrecognized option '--%s'\n"), + N_("%s: unrecognized option `%c%s'\n"), + N_("%s: unrecognized option '%c%s'\n"), + N_("%s: option `-W %s' is ambiguous\n"), + N_("%s: option '-W %s' is ambiguous\n"), + N_("%s: option `-W %s' doesn't allow an argument\n"), + N_("%s: option '-W %s' doesn't allow an argument\n"), + N_("%s: option `-W %s' requires an argument\n"), + N_("%s: option '-W %s' requires an argument\n"), + + "" +}; + + +/***********************************************************************/ +// End of file diff --git a/lib/ref-add.sin b/lib/ref-add.sin deleted file mode 100644 index 3913e99..0000000 --- a/lib/ref-add.sin +++ /dev/null @@ -1,29 +0,0 @@ -# Add this package to a list of references stored in a text file. -# -# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. -# -# 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, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, see . -# -# Written by Bruno Haible . -# -/^# Packages using this file: / { - s/# Packages using this file:// - ta - :a - s/ @PACKAGE@ / @PACKAGE@ / - tb - s/ $/ @PACKAGE@ / - :b - s/^/# Packages using this file:/ -} diff --git a/lib/ref-del.sin b/lib/ref-del.sin deleted file mode 100644 index eeff947..0000000 --- a/lib/ref-del.sin +++ /dev/null @@ -1,24 +0,0 @@ -# Remove this package from a list of references stored in a text file. -# -# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. -# -# 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, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, see . -# -# Written by Bruno Haible . -# -/^# Packages using this file: / { - s/# Packages using this file:// - s/ @PACKAGE@ / / - s/^/# Packages using this file:/ -} diff --git a/lib/stdbool.in.h b/lib/stdbool.in.h index 1067ed2..8158b00 100644 --- a/lib/stdbool.in.h +++ b/lib/stdbool.in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2003, 2006-2017 Free Software Foundation, Inc. +/* Copyright (C) 2001-2003, 2006-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify @@ -12,7 +12,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H @@ -82,9 +82,9 @@ typedef bool _Bool; /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html + https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. diff --git a/lib/stddef.in.h b/lib/stddef.in.h index 5b496a6..945f192 100644 --- a/lib/stddef.in.h +++ b/lib/stddef.in.h @@ -1,6 +1,6 @@ /* A substitute for POSIX 2008 , for platforms that have issues. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. 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 @@ -13,13 +13,13 @@ 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 . */ + along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. - * + * */ #if __GNUC__ >= 3 @@ -85,24 +85,28 @@ a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. */ #if ! (@HAVE_MAX_ALIGN_T@ || defined _GCC_MAX_ALIGN_T) +# if !GNULIB_defined_max_align_t /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ -# ifdef __GNUC__ -# define _GL_STDDEF_ALIGNAS(type) \ - __attribute__ ((__aligned__ (__alignof__ (type)))) -# else -# define _GL_STDDEF_ALIGNAS(type) /* */ -# endif +# ifdef __GNUC__ +# define _GL_STDDEF_ALIGNAS(type) \ + __attribute__ ((__aligned__ (__alignof__ (type)))) +# else +# define _GL_STDDEF_ALIGNAS(type) /* */ +# endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); -} max_align_t; +} rpl_max_align_t; +# define max_align_t rpl_max_align_t +# define GNULIB_defined_max_align_t 1 +# endif #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ diff --git a/lib/stdint.in.h b/lib/stdint.in.h index 5fbec34..d32de34 100644 --- a/lib/stdint.in.h +++ b/lib/stdint.in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc. +/* Copyright (C) 2001-2002, 2004-2019 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. @@ -13,11 +13,11 @@ 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 . */ + along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. - * + * */ #ifndef _@GUARD_PREFIX@_STDINT_H diff --git a/lib/stdio.in.h b/lib/stdio.in.h index b714c54..4a8aa55 100644 --- a/lib/stdio.in.h +++ b/lib/stdio.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2004, 2007-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -118,11 +118,18 @@ # include #endif +/* Android 4.3 declares renameat in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ + && ! defined __GLIBC__ +# include +#endif + /* MSVC declares 'perror' in , not in . We must include it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif @@ -133,7 +140,7 @@ it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif @@ -152,7 +159,7 @@ /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., - . + . Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && defined __GNUC__ && defined __STDC__) @@ -610,7 +617,7 @@ _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 - , + , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index ef41c99..e5583d9 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 1995, 2001-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1995, 2001-2004, 2006-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -47,11 +47,14 @@ /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ +/* OpenIndiana has a bug: must be included before + . */ +# include # include #endif /* Native Windows platforms declare mktemp() in . */ -#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include #endif @@ -87,9 +90,10 @@ struct random_data # endif #endif -#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ +/* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include @@ -234,8 +238,8 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. - For more details see the POSIX:2001 specification. - http://www.opengroup.org/susv3xsh/getsubopt.html */ + For more details see the POSIX specification. + https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) @@ -302,9 +306,18 @@ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else +# if !@HAVE_MBTOWC@ +_GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); +# endif _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); +#elif defined GNULIB_POSIXCHECK +# undef mbtowc +# if HAVE_RAW_DECL_MBTOWC +_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " + "use gnulib module mbtowc for portability"); +# endif #endif #if @GNULIB_MKDTEMP@ @@ -569,10 +582,19 @@ _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " #if @GNULIB_RANDOM@ -# if !@HAVE_RANDOM@ +# if @REPLACE_RANDOM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef random +# define random rpl_random +# endif +_GL_FUNCDECL_RPL (random, long, (void)); +_GL_CXXALIAS_RPL (random, long, (void)); +# else +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); -# endif +# endif _GL_CXXALIAS_SYS (random, long, (void)); +# endif _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random @@ -583,10 +605,19 @@ _GL_WARN_ON_USE (random, "random is unportable - " #endif #if @GNULIB_RANDOM@ -# if !@HAVE_RANDOM@ +# if @REPLACE_RANDOM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef srandom +# define srandom rpl_srandom +# endif +_GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); +_GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); +# else +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); -# endif +# endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); +# endif _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom @@ -597,31 +628,52 @@ _GL_WARN_ON_USE (srandom, "srandom is unportable - " #endif #if @GNULIB_RANDOM@ -# if !@HAVE_RANDOM@ || !@HAVE_DECL_INITSTATE@ +# if @REPLACE_INITSTATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef initstate +# define initstate rpl_initstate +# endif +_GL_FUNCDECL_RPL (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size)); +# else +# if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); -# endif +# endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); +# endif _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate -# if HAVE_RAW_DECL_INITSTATE_R +# if HAVE_RAW_DECL_INITSTATE _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ -# if !@HAVE_RANDOM@ || !@HAVE_DECL_SETSTATE@ +# if @REPLACE_SETSTATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setstate +# define setstate rpl_setstate +# endif +_GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); +# else +# if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); -# endif +# endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); +# endif _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate -# if HAVE_RAW_DECL_SETSTATE_R +# if HAVE_RAW_DECL_SETSTATE _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif @@ -877,6 +929,7 @@ _GL_WARN_ON_USE (setenv, "setenv is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif +# define GNULIB_defined_strtod_function 1 _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); @@ -896,6 +949,32 @@ _GL_WARN_ON_USE (strtod, "strtod is unportable - " # endif #endif +#if @GNULIB_STRTOLD@ + /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ +# if @REPLACE_STRTOLD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtold rpl_strtold +# endif +# define GNULIB_defined_strtold_function 1 +_GL_FUNCDECL_RPL (strtold, long double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtold, long double, (const char *str, char **endp)); +# else +# if !@HAVE_STRTOLD@ +_GL_FUNCDECL_SYS (strtold, long double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtold, long double, (const char *str, char **endp)); +# endif +_GL_CXXALIASWARN (strtold); +#elif defined GNULIB_POSIXCHECK +# undef strtold +# if HAVE_RAW_DECL_STRTOLD +_GL_WARN_ON_USE (strtold, "strtold is unportable - " + "use gnulib module strtold for portability"); +# endif +#endif + #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, diff --git a/lib/str-two-way.h b/lib/str-two-way.h deleted file mode 100644 index 8b02f94..0000000 --- a/lib/str-two-way.h +++ /dev/null @@ -1,452 +0,0 @@ -/* Byte-wise substring search, using the Two-Way algorithm. - Copyright (C) 2008-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Eric Blake , 2008. - - 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, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, see . */ - -/* Before including this file, you need to include and - , and define: - RESULT_TYPE A macro that expands to the return type. - AVAILABLE(h, h_l, j, n_l) - A macro that returns nonzero if there are - at least N_L bytes left starting at H[J]. - H is 'unsigned char *', H_L, J, and N_L - are 'size_t'; H_L is an lvalue. For - NUL-terminated searches, H_L can be - modified each iteration to avoid having - to compute the end of H up front. - - For case-insensitivity, you may optionally define: - CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L - characters of P1 and P2 are equal. - CANON_ELEMENT(c) A macro that canonicalizes an element right after - it has been fetched from one of the two strings. - The argument is an 'unsigned char'; the result - must be an 'unsigned char' as well. - - This file undefines the macros documented above, and defines - LONG_NEEDLE_THRESHOLD. -*/ - -#include -#include - -/* We use the Two-Way string matching algorithm (also known as - Chrochemore-Perrin), which guarantees linear complexity with - constant space. Additionally, for long needles, we also use a bad - character shift table similar to the Boyer-Moore algorithm to - achieve improved (potentially sub-linear) performance. - - See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, - http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf -*/ - -/* Point at which computing a bad-byte shift table is likely to be - worthwhile. Small needles should not compute a table, since it - adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a - speedup no greater than a factor of NEEDLE_LEN. The larger the - needle, the better the potential performance gain. On the other - hand, on non-POSIX systems with CHAR_BIT larger than eight, the - memory required for the table is prohibitive. */ -#if CHAR_BIT < 10 -# define LONG_NEEDLE_THRESHOLD 32U -#else -# define LONG_NEEDLE_THRESHOLD SIZE_MAX -#endif - -#ifndef MAX -# define MAX(a, b) ((a < b) ? (b) : (a)) -#endif - -#ifndef CANON_ELEMENT -# define CANON_ELEMENT(c) c -#endif -#ifndef CMP_FUNC -# define CMP_FUNC memcmp -#endif - -/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. - Return the index of the first byte in the right half, and set - *PERIOD to the global period of the right half. - - The global period of a string is the smallest index (possibly its - length) at which all remaining bytes in the string are repetitions - of the prefix (the last repetition may be a subset of the prefix). - - When NEEDLE is factored into two halves, a local period is the - length of the smallest word that shares a suffix with the left half - and shares a prefix with the right half. All factorizations of a - non-empty NEEDLE have a local period of at least 1 and no greater - than NEEDLE_LEN. - - A critical factorization has the property that the local period - equals the global period. All strings have at least one critical - factorization with the left half smaller than the global period. - And while some strings have more than one critical factorization, - it is provable that with an ordered alphabet, at least one of the - critical factorizations corresponds to a maximal suffix. - - Given an ordered alphabet, a critical factorization can be computed - in linear time, with 2 * NEEDLE_LEN comparisons, by computing the - shorter of two ordered maximal suffixes. The ordered maximal - suffixes are determined by lexicographic comparison while tracking - periodicity. */ -static size_t -critical_factorization (const unsigned char *needle, size_t needle_len, - size_t *period) -{ - /* Index of last byte of left half, or SIZE_MAX. */ - size_t max_suffix, max_suffix_rev; - size_t j; /* Index into NEEDLE for current candidate suffix. */ - size_t k; /* Offset into current period. */ - size_t p; /* Intermediate period. */ - unsigned char a, b; /* Current comparison bytes. */ - - /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered - out 0-length needles. */ - if (needle_len < 3) - { - *period = 1; - return needle_len - 1; - } - - /* Invariants: - 0 <= j < NEEDLE_LEN - 1 - -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) - min(max_suffix, max_suffix_rev) < global period of NEEDLE - 1 <= p <= global period of NEEDLE - p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] - 1 <= k <= p - */ - - /* Perform lexicographic search. */ - max_suffix = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix + k]); - if (a < b) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* b < a */ - { - /* Suffix is larger, start over from current location. */ - max_suffix = j++; - k = p = 1; - } - } - *period = p; - - /* Perform reverse lexicographic search. */ - max_suffix_rev = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix_rev + k]); - if (b < a) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix_rev; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* a < b */ - { - /* Suffix is larger, start over from current location. */ - max_suffix_rev = j++; - k = p = 1; - } - } - - /* Choose the shorter suffix. Return the index of the first byte of - the right half, rather than the last byte of the left half. - - For some examples, 'banana' has two critical factorizations, both - exposed by the two lexicographic extreme suffixes of 'anana' and - 'nana', where both suffixes have a period of 2. On the other - hand, with 'aab' and 'bba', both strings have a single critical - factorization of the last byte, with the suffix having a period - of 1. While the maximal lexicographic suffix of 'aab' is 'b', - the maximal lexicographic suffix of 'bba' is 'ba', which is not a - critical factorization. Conversely, the maximal reverse - lexicographic suffix of 'a' works for 'bba', but not 'ab' for - 'aab'. The shorter suffix of the two will always be a critical - factorization. */ - if (max_suffix_rev + 1 < max_suffix + 1) - return max_suffix + 1; - *period = p; - return max_suffix_rev + 1; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. - Performance is guaranteed to be linear, with an initialization cost - of 2 * NEEDLE_LEN comparisons. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ -static RETURN_TYPE -two_way_short_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch in the left half can - only advance by the period, so use memory to avoid rescanning - known occurrences of the period in the right half. */ - size_t memory = 0; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = MAX (suffix, memory); - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = suffix; - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. - Performance is guaranteed to be linear, with an initialization cost - of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, - and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and - sublinear performance is not possible. */ -static RETURN_TYPE -two_way_long_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - size_t shift_table[1U << CHAR_BIT]; /* See below. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Populate shift_table. For each possible byte value c, - shift_table[c] is the distance from the last occurrence of c to - the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. - shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ - for (i = 0; i < 1U << CHAR_BIT; i++) - shift_table[i] = needle_len; - for (i = 0; i < needle_len; i++) - shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch in the left half can - only advance by the period, so use memory to avoid rescanning - known occurrences of the period in the right half. */ - size_t memory = 0; - size_t shift; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - if (memory && shift < period) - { - /* Since needle is periodic, but the last period has - a byte out of place, there can be no match until - after the mismatch. */ - shift = needle_len - period; - } - memory = 0; - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = MAX (suffix, memory); - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - size_t shift; - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = suffix; - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -#undef AVAILABLE -#undef CANON_ELEMENT -#undef CMP_FUNC -#undef MAX -#undef RETURN_TYPE diff --git a/lib/streq.h b/lib/streq.h index d40fc48..326537b 100644 --- a/lib/streq.h +++ b/lib/streq.h @@ -1,5 +1,5 @@ /* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* Written by Bruno Haible . */ diff --git a/lib/striconv.c b/lib/striconv.c index d4efad2..26b8c0e 100644 --- a/lib/striconv.c +++ b/lib/striconv.c @@ -1,5 +1,5 @@ /* Charset conversion. - Copyright (C) 2001-2007, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2007, 2010-2019 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #include diff --git a/lib/striconv.h b/lib/striconv.h index fd3854c..1098f63 100644 --- a/lib/striconv.h +++ b/lib/striconv.h @@ -1,5 +1,5 @@ /* Charset conversion. - Copyright (C) 2001-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef _STRICONV_H #define _STRICONV_H diff --git a/lib/string.in.h b/lib/string.in.h index aaff563..c57f041 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 2001-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -693,7 +693,7 @@ _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: - http://www.opengroup.org/susv3xsh/strtok.html + https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. diff --git a/lib/strnlen1.c b/lib/strnlen1.c index 63f78a6..666a557 100644 --- a/lib/strnlen1.c +++ b/lib/strnlen1.c @@ -1,5 +1,5 @@ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/strnlen1.h b/lib/strnlen1.h index 86cb177..5d95244 100644 --- a/lib/strnlen1.h +++ b/lib/strnlen1.h @@ -1,5 +1,5 @@ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program. If not, see . */ #ifndef _STRNLEN1_H #define _STRNLEN1_H diff --git a/lib/strstr.c b/lib/strstr.c deleted file mode 100644 index 7870bb6..0000000 --- a/lib/strstr.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2017 Free Software - Foundation, Inc. - This file is part of the GNU C Library. - - 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, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, see . */ - -/* This particular implementation was written by Eric Blake, 2008. */ - -#ifndef _LIBC -# include -#endif - -/* Specification of strstr. */ -#include - -#include - -#define RETURN_TYPE char * -#define AVAILABLE(h, h_l, j, n_l) \ - (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ - && ((h_l) = (j) + (n_l))) -#include "str-two-way.h" - -/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK - if NEEDLE is empty, otherwise NULL if NEEDLE is not found in - HAYSTACK. */ -char * -strstr (const char *haystack_start, const char *needle_start) -{ - const char *haystack = haystack_start; - const char *needle = needle_start; - size_t needle_len; /* Length of NEEDLE. */ - size_t haystack_len; /* Known minimum length of HAYSTACK. */ - bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */ - - /* Determine length of NEEDLE, and in the process, make sure - HAYSTACK is at least as long (no point processing all of a long - NEEDLE if HAYSTACK is too short). */ - while (*haystack && *needle) - ok &= *haystack++ == *needle++; - if (*needle) - return NULL; - if (ok) - return (char *) haystack_start; - - /* Reduce the size of haystack using strchr, since it has a smaller - linear coefficient than the Two-Way algorithm. */ - needle_len = needle - needle_start; - haystack = strchr (haystack_start + 1, *needle_start); - if (!haystack || __builtin_expect (needle_len == 1, 0)) - return (char *) haystack; - needle -= needle_len; - haystack_len = (haystack > haystack_start + needle_len ? 1 - : needle_len + haystack_start - haystack); - - /* Perform the search. Abstract memory is considered to be an array - of 'unsigned char' values, not an array of 'char' values. See - ISO C 99 section 6.2.6.1. */ - if (needle_len < LONG_NEEDLE_THRESHOLD) - return two_way_short_needle ((const unsigned char *) haystack, - haystack_len, - (const unsigned char *) needle, needle_len); - return two_way_long_needle ((const unsigned char *) haystack, haystack_len, - (const unsigned char *) needle, needle_len); -} - -#undef LONG_NEEDLE_THRESHOLD diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h index 1831740..9ddd1a8 100644 --- a/lib/sys_stat.in.h +++ b/lib/sys_stat.in.h @@ -1,5 +1,5 @@ /* Provide a more complete sys/stat.h header file. - Copyright (C) 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program; if not, see . */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ @@ -54,16 +54,23 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ +/* Before doing "#define mknod rpl_mknod" below, we need to include all + headers that may declare mknod(). OS/2 kLIBC declares mknod() in + , not in . */ +#ifdef __KLIBC__ +# include +#endif + /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir - in and/or , not in . */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + in and/or , not in . */ +#if defined _WIN32 && ! defined __CYGWIN__ # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in . */ -#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include #endif @@ -576,7 +583,7 @@ _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes and , which are included above. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int diff --git a/lib/sys_time.in.h b/lib/sys_time.in.h index 57739bc..5397688 100644 --- a/lib/sys_time.in.h +++ b/lib/sys_time.in.h @@ -1,6 +1,6 @@ /* Provide a more complete sys/time.h. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ /* Written by Paul Eggert. */ diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h index 3cea448..237e206 100644 --- a/lib/sys_types.in.h +++ b/lib/sys_types.in.h @@ -1,6 +1,6 @@ /* Provide a more complete sys/types.h. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. 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 @@ -13,13 +13,24 @@ 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 . */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ +#if defined _WIN32 && !defined __CYGWIN__ \ + && (defined __need_off_t || defined __need___off64_t \ + || defined __need_ssize_t || defined __need_time_t) + +/* Special invocation convention inside mingw header files. */ + +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ + +#else +/* Normal invocation convention. */ + #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ @@ -86,10 +97,10 @@ typedef unsigned long long int rpl_ino_t; /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ -#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ +#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* __need_XXX */ diff --git a/lib/time.in.h b/lib/time.in.h index f0c7ef8..40e5b20 100644 --- a/lib/time.in.h +++ b/lib/time.in.h @@ -1,6 +1,6 @@ /* A more-standard . - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -48,7 +48,7 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). +/* Some systems don't define struct timespec (e.g., AIX 4.1). Or they define it with the wrong member names or define it in (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in . */ @@ -84,8 +84,8 @@ struct timespec # endif # if !GNULIB_defined_struct_time_t_must_be_integral -/* Per http://austingroupbugs.net/view.php?id=327, POSIX requires - time_t to be an integer type, even though C99 permits floating +/* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html + requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ @@ -97,7 +97,7 @@ struct __time_t_must_be_integral { /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See - . */ + . */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -153,8 +153,8 @@ _GL_CXXALIASWARN (mktime); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ + and + . */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -203,8 +203,8 @@ _GL_CXXALIASWARN (gmtime_r); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ + and + . */ # if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ # if @REPLACE_LOCALTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -212,7 +212,7 @@ _GL_CXXALIASWARN (gmtime_r); # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); @@ -237,7 +237,7 @@ _GL_CXXALIASWARN (gmtime); /* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See - . */ + . */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, @@ -252,7 +252,7 @@ _GL_CXXALIASWARN (strptime); # endif /* Convert *TP to a date and time string. See - . */ + . */ # if @GNULIB_CTIME@ # if @REPLACE_CTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -268,7 +268,7 @@ _GL_CXXALIASWARN (ctime); # endif /* Convert *TP to a date and time string. See - . */ + . */ # if @GNULIB_STRFTIME@ # if @REPLACE_STRFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/lib/unistd.in.h b/lib/unistd.in.h index f366caf..cc57ce6 100644 --- a/lib/unistd.in.h +++ b/lib/unistd.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around . - Copyright (C) 2003-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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 . */ + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H @@ -52,7 +52,10 @@ #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ -#include +/* But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include +#endif /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* MSVC declares 'unlink' in , not in . We must include @@ -61,16 +64,18 @@ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) \ + && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif -/* Cygwin 1.7.1 declares unlinkat in , not in . */ +/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in + . */ /* But avoid namespace pollution on glibc systems. */ -#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ +#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ + && (defined __CYGWIN__ || defined __ANDROID__) \ && ! defined __GLIBC__ # include #endif @@ -94,13 +99,13 @@ lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + && (defined _WIN32 && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) + && (defined _WIN32 && ! defined __CYGWIN__) # include #endif @@ -113,17 +118,18 @@ # include #endif -/* MSVC defines off_t in . - May also define off_t to a 64-bit type on native Windows. */ -#if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ -/* Get off_t. */ -# include +/* Android 4.3 declares fchownat in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ + && !defined __GLIBC__ +# include #endif -#if (@GNULIB_READ@ || @GNULIB_WRITE@ \ - || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ - || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) -/* Get ssize_t. */ +/* MSVC defines off_t in . + May also define off_t to a 64-bit type on native Windows. */ +/* But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +/* Get off_t, ssize_t. */ # include #endif @@ -134,9 +140,8 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Get getopt(), optarg, optind, opterr, optopt. - But avoid namespace pollution on glibc systems. */ -#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT +/* Get getopt(), optarg, optind, opterr, optopt. */ +#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT # include # include #endif @@ -248,10 +253,28 @@ _GL_INLINE_HEADER_BEGIN /* Declare overridden functions. */ -#if defined GNULIB_POSIXCHECK +#if @GNULIB_ACCESS@ +# if @REPLACE_ACCESS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef access +# define access rpl_access +# endif +_GL_FUNCDECL_RPL (access, int, (const char *file, int mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); +# else +_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); +# endif +_GL_CXXALIASWARN (access); +#elif defined GNULIB_POSIXCHECK +# undef access +# if HAVE_RAW_DECL_ACCESS /* The access() function is a security risk. */ -_GL_WARN_ON_USE (access, "the access function is a security risk - " +_GL_WARN_ON_USE (access, "access does not always support X_OK - " + "use gnulib module access for portability; " + "also, this function is a security risk - " "use the gnulib module faccessat instead"); +# endif #endif @@ -272,7 +295,7 @@ _GL_WARN_ON_USE (chown, "chdir is not always in - " to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 @@ -379,7 +420,7 @@ _GL_WARN_ON_USE (dup2, "dup2 is unportable - " Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at - . */ + . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 @@ -401,6 +442,13 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - " #if @GNULIB_ENVIRON@ +# if defined __CYGWIN__ && !defined __i386__ +/* The 'environ' variable is defined in a DLL. Therefore its declaration needs + the '__declspec(dllimport)' attribute, but the system's lacks it. + This leads to a link error on 64-bit Cygwin when the option + -Wl,--disable-auto-import is in use. */ +_GL_EXTERN_C __declspec(dllimport) char **environ; +# endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ @@ -426,12 +474,12 @@ extern char **environ; #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** +_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " + "use gnulib module environ for portability") rpl_environ (void) { return &environ; } -_GL_WARN_ON_USE (rpl_environ, "environ is unportable - " - "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif @@ -462,13 +510,25 @@ _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " #if @GNULIB_FACCESSAT@ -# if !@HAVE_FACCESSAT@ +# if @REPLACE_FACCESSAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef faccessat +# define faccessat rpl_faccessat +# endif +_GL_FUNCDECL_RPL (faccessat, int, + (int fd, char const *name, int mode, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (faccessat, int, + (int fd, char const *name, int mode, int flag)); +# else +# if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); -# endif +# endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); +# endif _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat @@ -484,7 +544,7 @@ _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); @@ -545,7 +605,7 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif @@ -564,7 +624,7 @@ _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif @@ -583,7 +643,7 @@ _GL_WARN_ON_USE (fsync, "fsync is unportable - " /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate @@ -613,7 +673,7 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification - . + . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as @@ -773,7 +833,7 @@ _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. - See . + See . Most programs don't need to use this function, because the information is available through environment variables: @@ -802,7 +862,7 @@ _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). - See . + See . Most programs don't need to use this function, because the information is available through environment variables: @@ -917,6 +977,36 @@ _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " #endif +#if @GNULIB_GETPASS@ +/* Function getpass() from module 'getpass': + Read a password from /dev/tty or stdin. + Function getpass() from module 'getpass-gnu': + Read a password of arbitrary length from /dev/tty or stdin. */ +# if @REPLACE_GETPASS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getpass +# define getpass rpl_getpass +# endif +_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); +# else +# if !@HAVE_GETPASS@ +_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); +# endif +_GL_CXXALIASWARN (getpass); +#elif defined GNULIB_POSIXCHECK +# undef getpass +# if HAVE_RAW_DECL_GETPASS +_GL_WARN_ON_USE (getpass, "getpass is unportable - " + "use gnulib module getpass or getpass-gnu for portability"); +# endif +#endif + + #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ @@ -1007,7 +1097,7 @@ _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown @@ -1037,7 +1127,7 @@ _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link @@ -1103,7 +1193,7 @@ _GL_WARN_ON_USE (linkat, "linkat is unportable - " /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek @@ -1149,7 +1239,7 @@ _GL_WARN_ON_USE (pipe, "pipe is unportable - " Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at - . */ + . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 @@ -1175,7 +1265,7 @@ _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread @@ -1210,7 +1300,7 @@ _GL_WARN_ON_USE (pread, "pread is unportable - " Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite @@ -1243,7 +1333,7 @@ _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read @@ -1267,7 +1357,7 @@ _GL_CXXALIASWARN (read); bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink @@ -1377,7 +1467,7 @@ _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep @@ -1461,7 +1551,7 @@ _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " /* Change the size of the file designated by FILENAME to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_TRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncate @@ -1471,7 +1561,7 @@ _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else -# if !@HAVE_TRUNCATE@ +# if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif @@ -1568,7 +1658,7 @@ _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification - . */ + . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep @@ -1595,7 +1685,7 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - " #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write diff --git a/lib/unistr.in.h b/lib/unistr.in.h index 0f330af..68f60f1 100644 --- a/lib/unistr.in.h +++ b/lib/unistr.in.h @@ -1,5 +1,5 @@ /* Elementary Unicode string functions. - Copyright (C) 2001-2002, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2005-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef _UNISTR_H #define _UNISTR_H @@ -137,8 +137,8 @@ extern int The number of available units, N, must be > 0. */ /* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, and the NUL character is not treated specially. */ -/* The variants with _safe suffix are safe, even if the library is compiled - without --enable-safety. */ +/* The variants with _unsafe suffix are for backward compatibility with + libunistring versions < 0.9.7. */ #if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE diff --git a/lib/unistr/.gitignore b/lib/unistr/.gitignore new file mode 100644 index 0000000..c83c013 --- /dev/null +++ b/lib/unistr/.gitignore @@ -0,0 +1 @@ +/.dirstamp diff --git a/lib/unistr/u8-mbtoucr.c b/lib/unistr/u8-mbtoucr.c index 3f2f386..a1ff0b4 100644 --- a/lib/unistr/u8-mbtoucr.c +++ b/lib/unistr/u8-mbtoucr.c @@ -1,5 +1,5 @@ /* Look at first character in UTF-8 string, returning an error code. - Copyright (C) 1999-2002, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2002, 2006-2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it @@ -13,7 +13,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include diff --git a/lib/unistr/u8-uctomb-aux.c b/lib/unistr/u8-uctomb-aux.c index ba358ed..fa63fd6 100644 --- a/lib/unistr/u8-uctomb-aux.c +++ b/lib/unistr/u8-uctomb-aux.c @@ -1,5 +1,5 @@ /* Conversion UCS-4 to UTF-8. - Copyright (C) 2002, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2006-2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute it and/or modify it @@ -13,7 +13,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include diff --git a/lib/unistr/u8-uctomb.c b/lib/unistr/u8-uctomb.c index 685b6f1..1ebcb49 100644 --- a/lib/unistr/u8-uctomb.c +++ b/lib/unistr/u8-uctomb.c @@ -1,5 +1,5 @@ /* Store a character in UTF-8 string. - Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute it and/or modify it @@ -13,7 +13,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h index 8733079..631654b 100644 --- a/lib/unitypes.in.h +++ b/lib/unitypes.in.h @@ -1,5 +1,5 @@ /* Elementary types and macros for the GNU UniString library. - Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef _UNITYPES_H #define _UNITYPES_H diff --git a/lib/unused-parameter.h b/lib/unused-parameter.h index b300055..5e57de1 100644 --- a/lib/unused-parameter.h +++ b/lib/unused-parameter.h @@ -1,5 +1,5 @@ /* A C macro for declaring that specific function parameters are not used. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce diff --git a/lib/verify.h b/lib/verify.h index dcba9c8..a58005c 100644 --- a/lib/verify.h +++ b/lib/verify.h @@ -1,6 +1,6 @@ /* Compile-time assert-like macros. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ @@ -21,31 +21,37 @@ #define _GL_VERIFY_H -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. - This is supported by GCC 4.6.0 and later, in C mode, and its use - here generates easier-to-read diagnostics when verify (R) fails. +/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) + works as per C11. This is supported by GCC 4.6.0 and later, in C + mode. - Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. - This will likely be supported by future GCC versions, in C++ mode. + Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as + per C2X, and define _GL_HAVE_STATIC_ASSERT1 if static_assert (R) + works as per C++17. This is supported by GCC 9.1 and later. - Use this only with GCC. If we were willing to slow 'configure' - down we could also use it with other compilers, but since this - affects only the quality of diagnostics, why bother? */ -#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ - && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ - && !defined __cplusplus) -# define _GL_HAVE__STATIC_ASSERT 1 -#endif -/* The condition (99 < __GNUC__) is temporary, until we know about the - first G++ release that supports static_assert. */ -#if (99 < __GNUC__) && defined __cplusplus -# define _GL_HAVE_STATIC_ASSERT 1 + Support compilers claiming conformance to the relevant standard, + and also support GCC when not pedantic. If we were willing to slow + 'configure' down we could also use it with other compilers, but + since this affects only the quality of diagnostics, why bother? */ +#ifndef __cplusplus +# if (201112L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__))) +# define _GL_HAVE__STATIC_ASSERT 1 +# endif +# if (202000L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) +# define _GL_HAVE__STATIC_ASSERT1 1 +# endif +#else +# if 201703L <= __cplusplus || 9 <= __GNUC__ +# define _GL_HAVE_STATIC_ASSERT1 1 +# endif #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ -#ifndef _GL_HAVE_STATIC_ASSERT +#ifndef _GL_HAVE__STATIC_ASSERT # include # undef _Static_assert #endif @@ -143,9 +149,9 @@ which do not support _Static_assert, also do not warn about the last declaration mentioned above. - * GCC warns if -Wnested-externs is enabled and verify() is used + * GCC warns if -Wnested-externs is enabled and 'verify' is used within a function body; but inside a function, you can always - arrange to use verify_expr() instead. + arrange to use verify_expr instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ @@ -197,48 +203,61 @@ template #endif /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. + trailing ';'. If R is false, fail at compile-time. + + This macro requires three or more arguments but uses at most the first + two, so that the _Static_assert macro optionally defined below supports + both the C11 two-argument syntax and the C2X one-argument syntax. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ -#ifdef _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY _Static_assert +#if defined _GL_HAVE__STATIC_ASSERT +# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) #else -# define _GL_VERIFY(R, DIAGNOSTIC) \ +# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H -# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert -# define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) +# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert +# define _Static_assert(...) \ + _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) # endif -# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert +# if !defined _GL_HAVE_STATIC_ASSERT1 && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ +#if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) +# define _GL_HAS_BUILTIN_TRAP 1 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) +#else +# define _GL_HAS_BUILTIN_TRAP 0 +#endif + +#if 4 < __GNUC__ + (5 <= __GNUC_MINOR__) +# define _GL_HAS_BUILTIN_UNREACHABLE 1 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) +#else +# define _GL_HAS_BUILTIN_UNREACHABLE 0 +#endif + /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all - contexts in C. verify_true (R) is for scalar contexts, including + contexts in C. verify_expr (R, E) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ -/* Verify requirement R at compile-time, as an integer constant expression. - Return 1. This is equivalent to verify_expr (R, 1). - - verify_true is obsolescent; please use verify_expr instead. */ - -#define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") - /* Verify requirement R at compile-time. Return the value of the expression E. */ @@ -246,37 +265,35 @@ template (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. */ + trailing ';'. verify (R) acts like static_assert (R) except that + it is portable to C11/C++14 and earlier, it can issue better + diagnostics, and its name is shorter and may be more convenient. */ -#ifdef __GNUC__ -# define verify(R) _GL_VERIFY (R, "verify (" #R ")") +#ifdef __PGI +/* PGI barfs if R is long. */ +# define verify(R) _GL_VERIFY (R, "verify (...)", -) #else -/* PGI barfs if R is long. Play it safe. */ -# define verify(R) _GL_VERIFY (R, "verify (...)") +# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) #endif -#ifndef __has_builtin -# define __has_builtin(x) 0 -#endif +/* Assume that R always holds. Behavior is undefined if R is false, + fails to evaluate, or has side effects. Although assuming R can + help a compiler generate better code or diagnostics, performance + can suffer if R uses hard-to-optimize features such as function + calls not inlined by the compiler. */ -/* Assume that R always holds. This lets the compiler optimize - accordingly. R should not have side-effects; it may or may not be - evaluated. Behavior is undefined if R is false. */ - -#if (__has_builtin (__builtin_unreachable) \ - || 4 < __GNUC__ + (5 <= __GNUC_MINOR__)) +#if _GL_HAS_BUILTIN_UNREACHABLE # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) #elif 1200 <= _MSC_VER # define assume(R) __assume (R) -#elif ((defined GCC_LINT || defined lint) \ - && (__has_builtin (__builtin_trap) \ - || 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)))) +#elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP /* Doing it this way helps various packages when configured with --enable-gcc-warnings, which compiles with -Dlint. It's nicer when 'assume' silences warnings even with older GCCs. */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else -# define assume(R) ((void) (0 && (R))) + /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ +# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) #endif /* @assert.h omit end@ */ diff --git a/lib/warn-on-use.h b/lib/warn-on-use.h index 3c0eb57..7d11a15 100644 --- a/lib/warn-on-use.h +++ b/lib/warn-on-use.h @@ -1,5 +1,5 @@ /* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing @@ -20,23 +20,32 @@ supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. - This macro is useful for marking a function as a potential + _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the + attribute used in _GL_WARN_ON_USE. If the compiler does not support + this feature, it expands to empty. + + These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used - instead. However, one of the reasons that a function is a - portability trap is if it has the wrong signature. Declaring - FUNCTION with a different signature in C is a compilation error, so - this macro must use the same type as any existing declaration so - that programs that avoid the problematic FUNCTION do not fail to - compile merely because they included a header that poisoned the - function. But this implies that _GL_WARN_ON_USE is only safe to - use if FUNCTION is known to already have a declaration. Use of - this macro implies that there must not be any other macro hiding - the declaration of FUNCTION; but undefining FUNCTION first is part - of the poisoning process anyway (although for symbols that are - provided only via a macro, the result is a compilation error rather - than a warning containing "literal string"). Also note that in - C++, it is only safe to use if FUNCTION has no overloads. + instead. + _GL_WARN_ON_USE is for functions with 'extern' linkage. + _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' + linkage. + + However, one of the reasons that a function is a portability trap is + if it has the wrong signature. Declaring FUNCTION with a different + signature in C is a compilation error, so this macro must use the + same type as any existing declaration so that programs that avoid + the problematic FUNCTION do not fail to compile merely because they + included a header that poisoned the function. But this implies that + _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already + have a declaration. Use of this macro implies that there must not + be any other macro hiding the declaration of FUNCTION; but + undefining FUNCTION first is part of the poisoning process anyway + (although for symbols that are provided only via a macro, the result + is a compilation error rather than a warning containing + "literal string"). Also note that in C++, it is only safe to use if + FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], @@ -54,12 +63,21 @@ (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char ***rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif + #if HAVE_RAW_DECL_ENVIRON + static char *** + rpl_environ (void) { return &environ; } + _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); + # undef environ + # define environ (*rpl_environ ()) + #endif + or better (avoiding contradictory use of 'static' and 'extern'): + #if HAVE_RAW_DECL_ENVIRON + static char *** + _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") + rpl_environ (void) { return &environ; } + # undef environ + # define environ (*rpl_environ ()) + #endif */ #ifndef _GL_WARN_ON_USE @@ -67,13 +85,17 @@ /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) +# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ + __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function +# define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use +# define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif diff --git a/lib/wchar.in.h b/lib/wchar.in.h index 56eba3c..f0a0de5 100644 --- a/lib/wchar.in.h +++ b/lib/wchar.in.h @@ -1,6 +1,6 @@ /* A substitute for ISO C99 , for platforms that have issues. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. 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 @@ -13,13 +13,13 @@ 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 . */ + along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. - * + * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). @@ -31,7 +31,7 @@ @PRAGMA_COLUMNS@ #if (((defined __need_mbstate_t || defined __need_wint_t) \ - && !defined __MINGW32__ && !defined __KLIBC__) \ + && !defined __MINGW32__) \ || (defined __hpux \ && ((defined _INTTYPES_INCLUDED && !defined strtoimax) \ || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ @@ -452,11 +452,6 @@ _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); -# elif defined __KLIBC__ -/* On OS/2 kLIBC, wcwidth is a macro that expands to the name of a - static inline function. The implementation of wcwidth in wcwidth.c - causes a "conflicting types" error. */ -# undef wcwidth # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif @@ -1041,7 +1036,7 @@ _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " /* Convert *TP to a date and time wide string. See - . */ + . */ #if @GNULIB_WCSFTIME@ # if @REPLACE_WCSFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/lib/wcrtomb.c b/lib/wcrtomb.c index f956ecf..8e56732 100644 --- a/lib/wcrtomb.c +++ b/lib/wcrtomb.c @@ -1,5 +1,5 @@ /* Convert wide character to multibyte character. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include @@ -27,8 +27,8 @@ size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) { - /* This implementation of wcrtomb on top of wctomb() supports only - stateless encodings. ps must be in the initial state. */ + /* This implementation of wcrtomb supports only stateless encodings. + ps must be in the initial state. */ if (ps != NULL && !mbsinit (ps)) { errno = EINVAL; @@ -40,10 +40,21 @@ wcrtomb (char *s, wchar_t wc, mbstate_t *ps) return 1; else { +#if defined __ANDROID__ + /* Implement consistently with mbrtowc(): through a 1:1 correspondence, + as in ISO-8859-1. */ + if (wc >= 0 && wc <= 0xff) + { + *s = (unsigned char) wc; + return 1; + } +#else + /* Implement on top of wctomb(). */ int ret = wctomb (s, wc); if (ret >= 0) return ret; +#endif else { errno = EILSEQ; diff --git a/lib/wcsdup-impl.h b/lib/wcsdup-impl.h index 34d0fbf..820eb5a 100644 --- a/lib/wcsdup-impl.h +++ b/lib/wcsdup-impl.h @@ -1,5 +1,5 @@ /* Duplicate a wide string. - Copyright (C) 1999, 2011-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 1999. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ wchar_t * wcsdup (const wchar_t *s) diff --git a/lib/wcsdup.c b/lib/wcsdup.c index e1dee21..4986324 100644 --- a/lib/wcsdup.c +++ b/lib/wcsdup.c @@ -1,5 +1,5 @@ /* Duplicate a wide string. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/wctob.c b/lib/wctob.c index ab320cf..b4f7d92 100644 --- a/lib/wctob.c +++ b/lib/wctob.c @@ -1,5 +1,5 @@ /* Convert wide character to unibyte character. - Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2008, 2010-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/wctomb-impl.h b/lib/wctomb-impl.h index f76b595..810063b 100644 --- a/lib/wctomb-impl.h +++ b/lib/wctomb-impl.h @@ -1,5 +1,5 @@ /* Convert wide character to multibyte character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ int wctomb (char *s, wchar_t wc) diff --git a/lib/wctomb.c b/lib/wctomb.c index 724ce4f..c35dc7b 100644 --- a/lib/wctomb.c +++ b/lib/wctomb.c @@ -1,5 +1,5 @@ /* Convert wide character to multibyte character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/wctype.in.h b/lib/wctype.in.h index 3a9e26c..fd973f3 100644 --- a/lib/wctype.in.h +++ b/lib/wctype.in.h @@ -1,6 +1,6 @@ /* A substitute for ISO C99 , for platforms that lack it. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. 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 @@ -13,13 +13,13 @@ 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 . */ + along with this program; if not, see . */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 for platforms that lack it. - * + * * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. @@ -60,7 +60,7 @@ isw* functions in , as well as in . Include , in advance to avoid rpl_ prefix being added to the declarations. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include # include #endif diff --git a/lib/windows-initguard.h b/lib/windows-initguard.h new file mode 100644 index 0000000..8aefd0b --- /dev/null +++ b/lib/windows-initguard.h @@ -0,0 +1,35 @@ +/* Init guards, somewhat like spinlocks (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#ifndef _WINDOWS_INITGUARD_H +#define _WINDOWS_INITGUARD_H + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include + +typedef struct + { + volatile int done; + volatile LONG started; + } + glwthread_initguard_t; + +#define GLWTHREAD_INITGUARD_INIT { 0, -1 } + +#endif /* _WINDOWS_INITGUARD_H */ diff --git a/lib/windows-mutex.c b/lib/windows-mutex.c new file mode 100644 index 0000000..9433881 --- /dev/null +++ b/lib/windows-mutex.c @@ -0,0 +1,95 @@ +/* Plain mutexes (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#include + +/* Specification. */ +#include "windows-mutex.h" + +#include + +void +glwthread_mutex_init (glwthread_mutex_t *mutex) +{ + InitializeCriticalSection (&mutex->lock); + mutex->guard.done = 1; +} + +int +glwthread_mutex_lock (glwthread_mutex_t *mutex) +{ + if (!mutex->guard.done) + { + if (InterlockedIncrement (&mutex->guard.started) == 0) + /* This thread is the first one to need this mutex. Initialize it. */ + glwthread_mutex_init (mutex); + else + { + /* Don't let mutex->guard.started grow and wrap around. */ + InterlockedDecrement (&mutex->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this mutex. */ + while (!mutex->guard.done) + Sleep (0); + } + } + EnterCriticalSection (&mutex->lock); + return 0; +} + +int +glwthread_mutex_trylock (glwthread_mutex_t *mutex) +{ + if (!mutex->guard.done) + { + if (InterlockedIncrement (&mutex->guard.started) == 0) + /* This thread is the first one to need this mutex. Initialize it. */ + glwthread_mutex_init (mutex); + else + { + /* Don't let mutex->guard.started grow and wrap around. */ + InterlockedDecrement (&mutex->guard.started); + /* Let another thread finish initializing this mutex, and let it also + lock this mutex. */ + return EBUSY; + } + } + if (!TryEnterCriticalSection (&mutex->lock)) + return EBUSY; + return 0; +} + +int +glwthread_mutex_unlock (glwthread_mutex_t *mutex) +{ + if (!mutex->guard.done) + return EINVAL; + LeaveCriticalSection (&mutex->lock); + return 0; +} + +int +glwthread_mutex_destroy (glwthread_mutex_t *mutex) +{ + if (!mutex->guard.done) + return EINVAL; + DeleteCriticalSection (&mutex->lock); + mutex->guard.done = 0; + return 0; +} diff --git a/lib/windows-mutex.h b/lib/windows-mutex.h new file mode 100644 index 0000000..5364f92 --- /dev/null +++ b/lib/windows-mutex.h @@ -0,0 +1,51 @@ +/* Plain mutexes (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#ifndef _WINDOWS_MUTEX_H +#define _WINDOWS_MUTEX_H + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include + +#include "windows-initguard.h" + +typedef struct + { + glwthread_initguard_t guard; /* protects the initialization */ + CRITICAL_SECTION lock; + } + glwthread_mutex_t; + +#define GLWTHREAD_MUTEX_INIT { GLWTHREAD_INITGUARD_INIT } + +#ifdef __cplusplus +extern "C" { +#endif + +extern void glwthread_mutex_init (glwthread_mutex_t *mutex); +extern int glwthread_mutex_lock (glwthread_mutex_t *mutex); +extern int glwthread_mutex_trylock (glwthread_mutex_t *mutex); +extern int glwthread_mutex_unlock (glwthread_mutex_t *mutex); +extern int glwthread_mutex_destroy (glwthread_mutex_t *mutex); + +#ifdef __cplusplus +} +#endif + +#endif /* _WINDOWS_MUTEX_H */ diff --git a/lib/windows-once.c b/lib/windows-once.c new file mode 100644 index 0000000..455c50e --- /dev/null +++ b/lib/windows-once.c @@ -0,0 +1,62 @@ +/* Once-only control (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#include + +/* Specification. */ +#include "windows-once.h" + +#include + +void +glwthread_once (glwthread_once_t *once_control, void (*initfunction) (void)) +{ + if (once_control->inited <= 0) + { + if (InterlockedIncrement (&once_control->started) == 0) + { + /* This thread is the first one to come to this once_control. */ + InitializeCriticalSection (&once_control->lock); + EnterCriticalSection (&once_control->lock); + once_control->inited = 0; + initfunction (); + once_control->inited = 1; + LeaveCriticalSection (&once_control->lock); + } + else + { + /* Don't let once_control->started grow and wrap around. */ + InterlockedDecrement (&once_control->started); + /* Some other thread has already started the initialization. + Yield the CPU while waiting for the other thread to finish + initializing and taking the lock. */ + while (once_control->inited < 0) + Sleep (0); + if (once_control->inited <= 0) + { + /* Take the lock. This blocks until the other thread has + finished calling the initfunction. */ + EnterCriticalSection (&once_control->lock); + LeaveCriticalSection (&once_control->lock); + if (!(once_control->inited > 0)) + abort (); + } + } + } +} diff --git a/lib/windows-once.h b/lib/windows-once.h new file mode 100644 index 0000000..1599983 --- /dev/null +++ b/lib/windows-once.h @@ -0,0 +1,47 @@ +/* Once-only control (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#ifndef _WINDOWS_ONCE_H +#define _WINDOWS_ONCE_H + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include + +typedef struct + { + volatile int inited; + volatile LONG started; + CRITICAL_SECTION lock; + } + glwthread_once_t; + +#define GLWTHREAD_ONCE_INIT { -1, -1 } + +#ifdef __cplusplus +extern "C" { +#endif + +extern void glwthread_once (glwthread_once_t *once_control, + void (*initfunction) (void)); + +#ifdef __cplusplus +} +#endif + +#endif /* _WINDOWS_ONCE_H */ diff --git a/lib/windows-recmutex.c b/lib/windows-recmutex.c new file mode 100644 index 0000000..7e6e446 --- /dev/null +++ b/lib/windows-recmutex.c @@ -0,0 +1,127 @@ +/* Plain recursive mutexes (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#include + +/* Specification. */ +#include "windows-recmutex.h" + +#include + +void +glwthread_recmutex_init (glwthread_recmutex_t *mutex) +{ + mutex->owner = 0; + mutex->depth = 0; + InitializeCriticalSection (&mutex->lock); + mutex->guard.done = 1; +} + +int +glwthread_recmutex_lock (glwthread_recmutex_t *mutex) +{ + if (!mutex->guard.done) + { + if (InterlockedIncrement (&mutex->guard.started) == 0) + /* This thread is the first one to need this mutex. Initialize it. */ + glwthread_recmutex_init (mutex); + else + { + /* Don't let mutex->guard.started grow and wrap around. */ + InterlockedDecrement (&mutex->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this mutex. */ + while (!mutex->guard.done) + Sleep (0); + } + } + { + DWORD self = GetCurrentThreadId (); + if (mutex->owner != self) + { + EnterCriticalSection (&mutex->lock); + mutex->owner = self; + } + if (++(mutex->depth) == 0) /* wraparound? */ + { + mutex->depth--; + return EAGAIN; + } + } + return 0; +} + +int +glwthread_recmutex_trylock (glwthread_recmutex_t *mutex) +{ + if (!mutex->guard.done) + { + if (InterlockedIncrement (&mutex->guard.started) == 0) + /* This thread is the first one to need this mutex. Initialize it. */ + glwthread_recmutex_init (mutex); + else + { + /* Don't let mutex->guard.started grow and wrap around. */ + InterlockedDecrement (&mutex->guard.started); + /* Let another thread finish initializing this mutex, and let it also + lock this mutex. */ + return EBUSY; + } + } + { + DWORD self = GetCurrentThreadId (); + if (mutex->owner != self) + { + if (!TryEnterCriticalSection (&mutex->lock)) + return EBUSY; + mutex->owner = self; + } + if (++(mutex->depth) == 0) /* wraparound? */ + { + mutex->depth--; + return EAGAIN; + } + } + return 0; +} + +int +glwthread_recmutex_unlock (glwthread_recmutex_t *mutex) +{ + if (mutex->owner != GetCurrentThreadId ()) + return EPERM; + if (mutex->depth == 0) + return EINVAL; + if (--(mutex->depth) == 0) + { + mutex->owner = 0; + LeaveCriticalSection (&mutex->lock); + } + return 0; +} + +int +glwthread_recmutex_destroy (glwthread_recmutex_t *mutex) +{ + if (mutex->owner != 0) + return EBUSY; + DeleteCriticalSection (&mutex->lock); + mutex->guard.done = 0; + return 0; +} diff --git a/lib/windows-recmutex.h b/lib/windows-recmutex.h new file mode 100644 index 0000000..d143108 --- /dev/null +++ b/lib/windows-recmutex.h @@ -0,0 +1,57 @@ +/* Plain recursive mutexes (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#ifndef _WINDOWS_RECMUTEX_H +#define _WINDOWS_RECMUTEX_H + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include + +#include "windows-initguard.h" + +/* The native Windows documentation says that CRITICAL_SECTION already + implements a recursive lock. But we need not rely on it: It's easy to + implement a recursive lock without this assumption. */ + +typedef struct + { + glwthread_initguard_t guard; /* protects the initialization */ + DWORD owner; + unsigned long depth; + CRITICAL_SECTION lock; + } + glwthread_recmutex_t; + +#define GLWTHREAD_RECMUTEX_INIT { GLWTHREAD_INITGUARD_INIT, 0, 0 } + +#ifdef __cplusplus +extern "C" { +#endif + +extern void glwthread_recmutex_init (glwthread_recmutex_t *mutex); +extern int glwthread_recmutex_lock (glwthread_recmutex_t *mutex); +extern int glwthread_recmutex_trylock (glwthread_recmutex_t *mutex); +extern int glwthread_recmutex_unlock (glwthread_recmutex_t *mutex); +extern int glwthread_recmutex_destroy (glwthread_recmutex_t *mutex); + +#ifdef __cplusplus +} +#endif + +#endif /* _WINDOWS_RECMUTEX_H */ diff --git a/lib/windows-rwlock.c b/lib/windows-rwlock.c new file mode 100644 index 0000000..9207d1b --- /dev/null +++ b/lib/windows-rwlock.c @@ -0,0 +1,373 @@ +/* Read-write locks (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#include + +/* Specification. */ +#include "windows-rwlock.h" + +#include +#include + +/* In this file, the waitqueues are implemented as circular arrays. */ +#define glwthread_waitqueue_t glwthread_carray_waitqueue_t + +static void +glwthread_waitqueue_init (glwthread_waitqueue_t *wq) +{ + wq->array = NULL; + wq->count = 0; + wq->alloc = 0; + wq->offset = 0; +} + +/* Enqueues the current thread, represented by an event, in a wait queue. + Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ +static HANDLE +glwthread_waitqueue_add (glwthread_waitqueue_t *wq) +{ + HANDLE event; + unsigned int index; + + if (wq->count == wq->alloc) + { + unsigned int new_alloc = 2 * wq->alloc + 1; + HANDLE *new_array = + (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); + if (new_array == NULL) + /* No more memory. */ + return INVALID_HANDLE_VALUE; + /* Now is a good opportunity to rotate the array so that its contents + starts at offset 0. */ + if (wq->offset > 0) + { + unsigned int old_count = wq->count; + unsigned int old_alloc = wq->alloc; + unsigned int old_offset = wq->offset; + unsigned int i; + if (old_offset + old_count > old_alloc) + { + unsigned int limit = old_offset + old_count - old_alloc; + for (i = 0; i < limit; i++) + new_array[old_alloc + i] = new_array[i]; + } + for (i = 0; i < old_count; i++) + new_array[i] = new_array[old_offset + i]; + wq->offset = 0; + } + wq->array = new_array; + wq->alloc = new_alloc; + } + /* Whether the created event is a manual-reset one or an auto-reset one, + does not matter, since we will wait on it only once. */ + event = CreateEvent (NULL, TRUE, FALSE, NULL); + if (event == INVALID_HANDLE_VALUE) + /* No way to allocate an event. */ + return INVALID_HANDLE_VALUE; + index = wq->offset + wq->count; + if (index >= wq->alloc) + index -= wq->alloc; + wq->array[index] = event; + wq->count++; + return event; +} + +/* Notifies the first thread from a wait queue and dequeues it. */ +static void +glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq) +{ + SetEvent (wq->array[wq->offset + 0]); + wq->offset++; + wq->count--; + if (wq->count == 0 || wq->offset == wq->alloc) + wq->offset = 0; +} + +/* Notifies all threads from a wait queue and dequeues them all. */ +static void +glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq) +{ + unsigned int i; + + for (i = 0; i < wq->count; i++) + { + unsigned int index = wq->offset + i; + if (index >= wq->alloc) + index -= wq->alloc; + SetEvent (wq->array[index]); + } + wq->count = 0; + wq->offset = 0; +} + +void +glwthread_rwlock_init (glwthread_rwlock_t *lock) +{ + InitializeCriticalSection (&lock->lock); + glwthread_waitqueue_init (&lock->waiting_readers); + glwthread_waitqueue_init (&lock->waiting_writers); + lock->runcount = 0; + lock->guard.done = 1; +} + +int +glwthread_rwlock_rdlock (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glwthread_rwlock_init (lock); + else + { + /* Don't let lock->guard.started grow and wrap around. */ + InterlockedDecrement (&lock->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + } + EnterCriticalSection (&lock->lock); + /* Test whether only readers are currently running, and whether the runcount + field will not overflow, and whether no writer is waiting. The latter + condition is because POSIX recommends that "write locks shall take + precedence over read locks", to avoid "writer starvation". */ + if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_readers. */ + HANDLE event = glwthread_waitqueue_add (&lock->waiting_readers); + if (event != INVALID_HANDLE_VALUE) + { + DWORD result; + LeaveCriticalSection (&lock->lock); + /* Wait until another thread signals this event. */ + result = WaitForSingleObject (event, INFINITE); + if (result == WAIT_FAILED || result == WAIT_TIMEOUT) + abort (); + CloseHandle (event); + /* The thread which signalled the event already did the bookkeeping: + removed us from the waiting_readers, incremented lock->runcount. */ + if (!(lock->runcount > 0)) + abort (); + return 0; + } + else + { + /* Allocation failure. Weird. */ + do + { + LeaveCriticalSection (&lock->lock); + Sleep (1); + EnterCriticalSection (&lock->lock); + } + while (!(lock->runcount + 1 > 0)); + } + } + lock->runcount++; + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glwthread_rwlock_wrlock (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glwthread_rwlock_init (lock); + else + { + /* Don't let lock->guard.started grow and wrap around. */ + InterlockedDecrement (&lock->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + } + EnterCriticalSection (&lock->lock); + /* Test whether no readers or writers are currently running. */ + if (!(lock->runcount == 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_writers. */ + HANDLE event = glwthread_waitqueue_add (&lock->waiting_writers); + if (event != INVALID_HANDLE_VALUE) + { + DWORD result; + LeaveCriticalSection (&lock->lock); + /* Wait until another thread signals this event. */ + result = WaitForSingleObject (event, INFINITE); + if (result == WAIT_FAILED || result == WAIT_TIMEOUT) + abort (); + CloseHandle (event); + /* The thread which signalled the event already did the bookkeeping: + removed us from the waiting_writers, set lock->runcount = -1. */ + if (!(lock->runcount == -1)) + abort (); + return 0; + } + else + { + /* Allocation failure. Weird. */ + do + { + LeaveCriticalSection (&lock->lock); + Sleep (1); + EnterCriticalSection (&lock->lock); + } + while (!(lock->runcount == 0)); + } + } + lock->runcount--; /* runcount becomes -1 */ + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glwthread_rwlock_init (lock); + else + { + /* Don't let lock->guard.started grow and wrap around. */ + InterlockedDecrement (&lock->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + } + /* It's OK to wait for this critical section, because it is never taken for a + long time. */ + EnterCriticalSection (&lock->lock); + /* Test whether only readers are currently running, and whether the runcount + field will not overflow, and whether no writer is waiting. The latter + condition is because POSIX recommends that "write locks shall take + precedence over read locks", to avoid "writer starvation". */ + if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) + { + /* This thread would have to wait for a while. Return instead. */ + LeaveCriticalSection (&lock->lock); + return EBUSY; + } + lock->runcount++; + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glwthread_rwlock_init (lock); + else + { + /* Don't let lock->guard.started grow and wrap around. */ + InterlockedDecrement (&lock->guard.started); + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + } + /* It's OK to wait for this critical section, because it is never taken for a + long time. */ + EnterCriticalSection (&lock->lock); + /* Test whether no readers or writers are currently running. */ + if (!(lock->runcount == 0)) + { + /* This thread would have to wait for a while. Return instead. */ + LeaveCriticalSection (&lock->lock); + return EBUSY; + } + lock->runcount--; /* runcount becomes -1 */ + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glwthread_rwlock_unlock (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + EnterCriticalSection (&lock->lock); + if (lock->runcount < 0) + { + /* Drop a writer lock. */ + if (!(lock->runcount == -1)) + abort (); + lock->runcount = 0; + } + else + { + /* Drop a reader lock. */ + if (!(lock->runcount > 0)) + { + LeaveCriticalSection (&lock->lock); + return EPERM; + } + lock->runcount--; + } + if (lock->runcount == 0) + { + /* POSIX recommends that "write locks shall take precedence over read + locks", to avoid "writer starvation". */ + if (lock->waiting_writers.count > 0) + { + /* Wake up one of the waiting writers. */ + lock->runcount--; + glwthread_waitqueue_notify_first (&lock->waiting_writers); + } + else + { + /* Wake up all waiting readers. */ + lock->runcount += lock->waiting_readers.count; + glwthread_waitqueue_notify_all (&lock->waiting_readers); + } + } + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glwthread_rwlock_destroy (glwthread_rwlock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + if (lock->runcount != 0) + return EBUSY; + DeleteCriticalSection (&lock->lock); + if (lock->waiting_readers.array != NULL) + free (lock->waiting_readers.array); + if (lock->waiting_writers.array != NULL) + free (lock->waiting_writers.array); + lock->guard.done = 0; + return 0; +} diff --git a/lib/windows-rwlock.h b/lib/windows-rwlock.h new file mode 100644 index 0000000..9002040 --- /dev/null +++ b/lib/windows-rwlock.h @@ -0,0 +1,68 @@ +/* Read-write locks (native Windows implementation). + Copyright (C) 2005-2019 Free Software Foundation, Inc. + + 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, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ + +#ifndef _WINDOWS_RWLOCK_H +#define _WINDOWS_RWLOCK_H + +#define WIN32_LEAN_AND_MEAN /* avoid including junk */ +#include + +#include "windows-initguard.h" + +/* It is impossible to implement read-write locks using plain locks, without + introducing an extra thread dedicated to managing read-write locks. + Therefore here we need to use the low-level Event type. */ + +typedef struct + { + HANDLE *array; /* array of waiting threads, each represented by an event */ + unsigned int count; /* number of waiting threads */ + unsigned int alloc; /* length of allocated array */ + unsigned int offset; /* index of first waiting thread in array */ + } + glwthread_carray_waitqueue_t; +typedef struct + { + glwthread_initguard_t guard; /* protects the initialization */ + CRITICAL_SECTION lock; /* protects the remaining fields */ + glwthread_carray_waitqueue_t waiting_readers; /* waiting readers */ + glwthread_carray_waitqueue_t waiting_writers; /* waiting writers */ + int runcount; /* number of readers running, or -1 when a writer runs */ + } + glwthread_rwlock_t; + +#define GLWTHREAD_RWLOCK_INIT { GLWTHREAD_INITGUARD_INIT } + +#ifdef __cplusplus +extern "C" { +#endif + +extern void glwthread_rwlock_init (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_rdlock (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_wrlock (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_unlock (glwthread_rwlock_t *lock); +extern int glwthread_rwlock_destroy (glwthread_rwlock_t *lock); + +#ifdef __cplusplus +} +#endif + +#endif /* _WINDOWS_RWLOCK_H */ diff --git a/lib/wmemcpy-impl.h b/lib/wmemcpy-impl.h index d0ff48c..90ed44b 100644 --- a/lib/wmemcpy-impl.h +++ b/lib/wmemcpy-impl.h @@ -1,5 +1,5 @@ /* Copy wide character array. - Copyright (C) 1999, 2011-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 1999. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ wchar_t * wmemcpy (wchar_t *dest, const wchar_t *src, size_t n) diff --git a/lib/wmemcpy.c b/lib/wmemcpy.c index 075b4ef..e62c81b 100644 --- a/lib/wmemcpy.c +++ b/lib/wmemcpy.c @@ -1,5 +1,5 @@ /* Copy wide character array. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #include diff --git a/lib/xopen-source.h b/lib/xopen-source.h new file mode 100644 index 0000000..d3cf6a7 --- /dev/null +++ b/lib/xopen-source.h @@ -0,0 +1,44 @@ +/************************************************************************ +* * +* Star Traders: A Game of Interstellar Trading * +* Copyright (C) 1990-2019, John Zaitseff * +* * +************************************************************************/ + +/* + Author: John Zaitseff + $Id$ + + This file, xopen-source.h, redefines _XOPEN_SOURCE to be the latest + version that is supported by the operating system's C library. It is + used by the Autoconf macro in ../m4/xopen-source.m4. + + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see https://www.gnu.org/licenses/. +*/ + + +#ifndef included_XOPEN_SOURCE_H +#define included_XOPEN_SOURCE_H + + +#ifdef LATEST_XOPEN_SOURCE +# if ! defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < LATEST_XOPEN_SOURCE +# undef _XOPEN_SOURCE +# define _XOPEN_SOURCE LATEST_XOPEN_SOURCE +# endif +#endif + + +#endif /* included_XOPEN_SOURCE_H */ diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4 index bb3512f..e3e0fb6 100644 --- a/m4/00gnulib.m4 +++ b/m4/00gnulib.m4 @@ -1,5 +1,5 @@ # 00gnulib.m4 serial 3 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/Makefile.am b/m4/Makefile.am index 0a91dfe..85dc5ba 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -24,14 +24,16 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. EXTRA_DIST = \ README \ - ax_append_flag.m4 \ - ax_cflags_warn_all.m4 \ ax_c___attribute__.m4 \ + ax_cflags_warn_all.m4 \ + ax_compiler_vendor.m4 \ + ax_prepend_flag.m4 \ ax_require_defined.m4 \ ax_with_curses.m4 \ - gnulib-cache.m4 + gnulib-cache.m4 \ + xopen-source.m4 diff --git a/m4/Makefile.in b/m4/Makefile.in index b99d899..d7c937c 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,12 +17,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: 0a91dfe2dd08e547ef46fe02dc4bc92a8cf54ebe $ +# $Id: 85dc5bad90f8d9bb845a4750ad60271e2304bed2 $ # # This file, m4/Makefile.am, contains the m4 macro directory Makefile for # Star Traders. It needs to be processed by automake to produce the @@ -40,7 +40,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -100,6 +100,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -118,19 +119,19 @@ subdir = m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -139,25 +140,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -187,7 +190,6 @@ am__can_run_installinfo = \ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -221,9 +223,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -231,6 +233,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -284,6 +287,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -299,6 +303,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -392,6 +397,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -403,6 +409,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -480,6 +487,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -510,6 +518,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -529,6 +538,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -541,10 +551,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -561,6 +573,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -573,7 +586,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -598,6 +613,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -607,10 +623,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -627,7 +645,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -695,8 +712,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -707,10 +726,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -718,6 +740,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -734,6 +757,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -764,6 +788,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -774,6 +799,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -781,6 +807,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -798,11 +825,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -830,6 +859,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -841,6 +871,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -853,6 +884,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -865,6 +897,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -873,6 +906,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -969,7 +1003,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -990,12 +1023,14 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ README \ - ax_append_flag.m4 \ - ax_cflags_warn_all.m4 \ ax_c___attribute__.m4 \ + ax_cflags_warn_all.m4 \ + ax_compiler_vendor.m4 \ + ax_prepend_flag.m4 \ ax_require_defined.m4 \ ax_with_curses.m4 \ - gnulib-cache.m4 + gnulib-cache.m4 \ + xopen-source.m4 all: all-am @@ -1017,8 +1052,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1036,7 +1071,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/m4/README b/m4/README index f48e03b..ed3e53d 100644 --- a/m4/README +++ b/m4/README @@ -1,23 +1,34 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, m4, contains M4 macros used by Autoconf. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -The following macros are from the Autoconf Archive project, as detailed on -that project's web site, http://www.gnu.org/software/autoconf-archive/: +This directory, `m4`, contains M4 macros used by Autoconf. - ax_append_flag.m4 - ax_cflags_warn_all.m4 - ax_c___attribute__.m4 - ax_require_defined.m4 - ax_with_curses.m4 -The following macro was generated by running the GNU Portability Library -"gnulib-tool" with appropriate command line options, as detailed on that -project's web site, http://www.gnu.org/software/gnulib/: +The following macro is custom-defined for Star Traders: - gnulib-cache.m4 +* `xopen-source.m4` + + +The following macros are from the `Autoconf Archive project`__, as +detailed on that project’s web site: + +* `ax_c___attribute__.m4` +* `ax_cflags_warn_all.m4` +* `ax_compiler_vendor.m4` +* `ax_prepend_flag.m4` +* `ax_require_defined.m4` +* `ax_with_curses.m4` + +__ https://www.gnu.org/software/autoconf-archive/ + + +The following macro was generated by running the `GNU Portability +Library`__ ``gnulib-tool`` with appropriate command line options, as +detailed on that project’s web site: + +* `gnulib-cache.m4` + +__ https://www.gnu.org/software/gnulib/ diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4 index c73adc8..a8f2cba 100644 --- a/m4/absolute-header.m4 +++ b/m4/absolute-header.m4 @@ -1,5 +1,5 @@ # absolute-header.m4 serial 16 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/assert.m4 b/m4/assert.m4 index 3485b7d..15048a7 100644 --- a/m4/assert.m4 +++ b/m4/assert.m4 @@ -1,6 +1,6 @@ #serial 7 -# Copyright (C) 1998-1999, 2001, 2004, 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 1998-1999, 2001, 2004, 2008-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4 deleted file mode 100644 index e8c5312..0000000 --- a/m4/ax_append_flag.m4 +++ /dev/null @@ -1,71 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) -# -# DESCRIPTION -# -# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space -# added in between. -# -# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. -# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains -# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly -# FLAG. -# -# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. -# -# LICENSE -# -# Copyright (c) 2008 Guido U. Draheim -# Copyright (c) 2011 Maarten Bosmans -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 7 - -AC_DEFUN([AX_APPEND_FLAG], -[dnl -AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF -AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) -AS_VAR_SET_IF(FLAGS,[ - AS_CASE([" AS_VAR_GET(FLAGS) "], - [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], - [ - AS_VAR_APPEND(FLAGS,[" $1"]) - AC_RUN_LOG([: FLAGS="$FLAGS"]) - ]) - ], - [ - AS_VAR_SET(FLAGS,[$1]) - AC_RUN_LOG([: FLAGS="$FLAGS"]) - ]) -AS_VAR_POPDEF([FLAGS])dnl -])dnl AX_APPEND_FLAG diff --git a/m4/ax_cflags_warn_all.m4 b/m4/ax_cflags_warn_all.m4 index 094577e..9235a18 100644 --- a/m4/ax_cflags_warn_all.m4 +++ b/m4/ax_cflags_warn_all.m4 @@ -4,33 +4,54 @@ # # SYNOPSIS # -# AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] -# AX_CXXFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] -# AX_FCFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] +# AX_CFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])] +# AX_CXXFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])] +# AX_FCFLAGS_WARN_ALL [(shellvar[, default[, action-if-found[, action-if-not-found]]])] # # DESCRIPTION # -# Try to find a compiler option that enables most reasonable warnings. +# Specify compiler options that enable most reasonable warnings. For the +# GNU Compiler Collection (GCC), for example, it will be "-Wall". The +# result is added to shellvar, one of CFLAGS, CXXFLAGS or FCFLAGS if the +# first parameter is not specified. # -# For the GNU compiler it will be -Wall (and -ansi -pedantic) The result -# is added to the shellvar being CFLAGS, CXXFLAGS, or FCFLAGS by default. +# Each of these macros accepts the following optional arguments: # -# Currently this macro knows about the GCC, Solaris, Digital Unix, AIX, -# HP-UX, IRIX, NEC SX-5 (Super-UX 10), Cray J90 (Unicos 10.0.0.8), and -# Intel compilers. For a given compiler, the Fortran flags are much more -# experimental than their C equivalents. +# - $1 - shellvar +# shell variable to use (CFLAGS, CXXFLAGS or FCFLAGS if not +# specified, depending on macro) # -# - $1 shell-variable-to-add-to : CFLAGS, CXXFLAGS, or FCFLAGS -# - $2 add-value-if-not-found : nothing -# - $3 action-if-found : add value to shellvariable -# - $4 action-if-not-found : nothing +# - $2 - default +# value to use for flags if compiler vendor cannot be determined (by +# default, "") # -# NOTE: These macros depend on AX_APPEND_FLAG. +# - $3 - action-if-found +# action to take if the compiler vendor has been successfully +# determined (by default, add the appropriate compiler flags to +# shellvar) +# +# - $4 - action-if-not-found +# action to take if the compiler vendor has not been determined or +# is unknown (by default, add the default flags, or "" if not +# specified, to shellvar) +# +# These macros use AX_COMPILER_VENDOR to determine which flags should be +# returned for a given compiler. Not all compilers currently have flags +# defined for them; patches are welcome. If need be, compiler flags may +# be made language-dependent: use a construct like the following: +# +# [vendor_name], [m4_if(_AC_LANG_PREFIX,[C], VAR="--relevant-c-flags",dnl +# m4_if(_AC_LANG_PREFIX,[CXX], VAR="--relevant-c++-flags",dnl +# m4_if(_AC_LANG_PREFIX,[FC], VAR="--relevant-fortran-flags",dnl +# VAR="$2"; FOUND="no")))], +# +# Note: These macros also depend on AX_PREPEND_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2010 Rhys Ulerich +# Copyright (c) 2018 John Zaitseff # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -58,65 +79,80 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 16 +#serial 25 -AC_DEFUN([AX_FLAGS_WARN_ALL],[dnl -AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl -AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl -AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], -VAR,[VAR="no, unknown" -ac_save_[]FLAGS="$[]FLAGS" -for ac_arg dnl -in "-warn all % -warn all" dnl Intel - "-pedantic % -Wall" dnl GCC - "-xstrconst % -v" dnl Solaris C - "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix - "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX - "-ansi -ansiE % -fullwarn" dnl IRIX - "+ESlit % +w1" dnl HP-UX C - "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) - "-h conform % -h msglevel 2" dnl Cray C (Unicos) - # -do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) -done -FLAGS="$ac_save_[]FLAGS" -]) -AS_VAR_POPDEF([FLAGS])dnl -AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) -case ".$VAR" in - .ok|.ok,*) m4_ifvaln($3,$3) ;; - .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;; - *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;; -esac -AS_VAR_POPDEF([VAR])dnl +AC_DEFUN([AX_FLAGS_WARN_ALL], [ + AX_REQUIRE_DEFINED([AX_PREPEND_FLAG])dnl + AC_REQUIRE([AX_COMPILER_VENDOR])dnl + + AS_VAR_PUSHDEF([FLAGS], [m4_default($1,_AC_LANG_PREFIX[]FLAGS)])dnl + AS_VAR_PUSHDEF([VAR], [ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl + AS_VAR_PUSHDEF([FOUND], [ac_save_[]_AC_LANG_ABBREV[]flags_warn_all_found])dnl + + AC_CACHE_CHECK([FLAGS for most reasonable warnings], VAR, [ + VAR="" + FOUND="yes" + dnl Cases are listed in the order found in ax_compiler_vendor.m4 + AS_CASE("$ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor", + [intel], [VAR="-w2"], + [ibm], [VAR="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"], + [pathscale], [], + [clang], [VAR="-Wall"], + [cray], [VAR="-h msglevel 2"], + [fujitsu], [], + [sdcc], [], + [sx], [VAR="-pvctl[,]fullmsg"], + [portland], [], + [gnu], [VAR="-Wall"], + [sun], [VAR="-v"], + [hp], [VAR="+w1"], + [dec], [VAR="-verbose -w0 -warnprotos"], + [borland], [], + [comeau], [], + [kai], [], + [lcc], [], + [sgi], [VAR="-fullwarn"], + [microsoft], [], + [metrowerks], [], + [watcom], [], + [tcc], [], + [unknown], [ + VAR="$2" + FOUND="no" + ], + [ + AC_MSG_WARN([Unknown compiler vendor returned by [AX_COMPILER_VENDOR]]) + VAR="$2" + FOUND="no" + ] + ) + + AS_IF([test "x$FOUND" = "xyes"], [dnl + m4_default($3, [AS_IF([test "x$VAR" != "x"], [AX_PREPEND_FLAG([$VAR], [FLAGS])])]) + ], [dnl + m4_default($4, [m4_ifval($2, [AX_PREPEND_FLAG([$VAR], [FLAGS])], [true])]) + ])dnl + ])dnl + + AS_VAR_POPDEF([FOUND])dnl + AS_VAR_POPDEF([VAR])dnl + AS_VAR_POPDEF([FLAGS])dnl ])dnl AX_FLAGS_WARN_ALL -dnl implementation tactics: -dnl the for-argument contains a list of options. The first part of -dnl these does only exist to detect the compiler - usually it is -dnl a global option to enable -ansi or -extrawarnings. All other -dnl compilers will fail about it. That was needed since a lot of -dnl compilers will give false positives for some option-syntax -dnl like -Woption or -Xoption as they think of it is a pass-through -dnl to later compile stages or something. The "%" is used as a -dnl delimiter. A non-option comment can be given after "%%" marks -dnl which will be shown but not added to the respective C/CXXFLAGS. -AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl -AC_LANG_PUSH([C]) -AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) -AC_LANG_POP([C]) -]) +AC_DEFUN([AX_CFLAGS_WARN_ALL], [dnl + AC_LANG_PUSH([C]) + AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) + AC_LANG_POP([C]) +])dnl -AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl -AC_LANG_PUSH([C++]) -AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) -AC_LANG_POP([C++]) -]) +AC_DEFUN([AX_CXXFLAGS_WARN_ALL], [dnl + AC_LANG_PUSH([C++]) + AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) + AC_LANG_POP([C++]) +])dnl -AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl -AC_LANG_PUSH([Fortran]) -AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) -AC_LANG_POP([Fortran]) -]) +AC_DEFUN([AX_FCFLAGS_WARN_ALL], [dnl + AC_LANG_PUSH([Fortran]) + AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) + AC_LANG_POP([Fortran]) +])dnl diff --git a/m4/ax_compiler_vendor.m4 b/m4/ax_compiler_vendor.m4 new file mode 100644 index 0000000..f06e865 --- /dev/null +++ b/m4/ax_compiler_vendor.m4 @@ -0,0 +1,117 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_vendor.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_VENDOR +# +# DESCRIPTION +# +# Determine the vendor of the C, C++ or Fortran compiler. The vendor is +# returned in the cache variable $ax_cv_c_compiler_vendor for C, +# $ax_cv_cxx_compiler_vendor for C++ or $ax_cv_fc_compiler_vendor for +# (modern) Fortran. The value is one of "intel", "ibm", "pathscale", +# "clang" (LLVM), "cray", "fujitsu", "sdcc", "sx", "portland" (PGI), "gnu" +# (GCC), "sun" (Oracle Developer Studio), "hp", "dec", "borland", +# "comeau", "kai", "lcc", "sgi", "microsoft", "metrowerks", "watcom", +# "tcc" (Tiny CC) or "unknown" (if the compiler cannot be determined). +# +# To check for a Fortran compiler, you must first call AC_FC_PP_SRCEXT +# with an appropriate preprocessor-enabled extension. For example: +# +# AC_LANG_PUSH([Fortran]) +# AC_PROG_FC +# AC_FC_PP_SRCEXT([F]) +# AX_COMPILER_VENDOR +# AC_LANG_POP([Fortran]) +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2008 Matteo Frigo +# Copyright (c) 2018-19 John Zaitseff +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 30 + +AC_DEFUN([AX_COMPILER_VENDOR], [dnl + AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [dnl + dnl If you modify this list of vendors, please add similar support + dnl to ax_compiler_version.m4 if at all possible. + dnl + dnl Note: Do NOT check for GCC first since some other compilers + dnl define __GNUC__ to remain compatible with it. Compilers that + dnl are very slow to start (such as Intel) are listed first. + + vendors=" + intel: __ICC,__ECC,__INTEL_COMPILER + ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__ + pathscale: __PATHCC__,__PATHSCALE__ + clang: __clang__ + cray: _CRAYC + fujitsu: __FUJITSU + sdcc: SDCC,__SDCC + sx: _SX + portland: __PGI + gnu: __GNUC__ + sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95 + hp: __HP_cc,__HP_aCC + dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER + borland: __BORLANDC__,__CODEGEARC__,__TURBOC__ + comeau: __COMO__ + kai: __KCC + lcc: __LCC__ + sgi: __sgi,sgi + microsoft: _MSC_VER + metrowerks: __MWERKS__ + watcom: __WATCOMC__ + tcc: __TINYC__ + unknown: UNKNOWN + " + for ventest in $vendors; do + case $ventest in + *:) + vendor=$ventest + continue + ;; + *) + vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")" + ;; + esac + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ +#if !($vencpp) + thisisanerror; +#endif + ]])], [break]) + done + + ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=`echo $vendor | cut -d: -f1` + ]) +])dnl diff --git a/m4/ax_prepend_flag.m4 b/m4/ax_prepend_flag.m4 new file mode 100644 index 0000000..adac8c5 --- /dev/null +++ b/m4/ax_prepend_flag.m4 @@ -0,0 +1,51 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_prepend_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PREPEND_FLAG(FLAG, [FLAGS-VARIABLE]) +# +# DESCRIPTION +# +# FLAG is added to the front of the FLAGS-VARIABLE shell variable, with a +# space added in between. +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains +# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly +# FLAG. +# +# NOTE: Implementation based on AX_APPEND_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# Copyright (c) 2018 John Zaitseff +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_PREPEND_FLAG], +[dnl +AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF +AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) +AS_VAR_SET_IF(FLAGS,[ + AS_CASE([" AS_VAR_GET(FLAGS) "], + [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], + [ + FLAGS="$1 $FLAGS" + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) + ], + [ + AS_VAR_SET(FLAGS,[$1]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) +AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_PREPEND_FLAG diff --git a/m4/btowc.m4 b/m4/btowc.m4 index 5e031e0..85c2cbf 100644 --- a/m4/btowc.m4 +++ b/m4/btowc.m4 @@ -1,5 +1,5 @@ # btowc.m4 serial 11 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_BTOWC], dnl Check whether is usable at all, first. Otherwise the test dnl program below may lead to an endless loop. See - dnl . + dnl . AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) AC_CHECK_FUNCS_ONCE([btowc]) diff --git a/m4/builtin-expect.m4 b/m4/builtin-expect.m4 deleted file mode 100644 index aa3364b..0000000 --- a/m4/builtin-expect.m4 +++ /dev/null @@ -1,49 +0,0 @@ -dnl Check for __builtin_expect. - -dnl Copyright 2016-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Written by Paul Eggert. - -AC_DEFUN([gl___BUILTIN_EXPECT], -[ - AC_CACHE_CHECK([for __builtin_expect], - [gl_cv___builtin_expect], - [AC_LINK_IFELSE( - [AC_LANG_SOURCE([[ - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - }]])], - [gl_cv___builtin_expect=yes], - [AC_LINK_IFELSE( - [AC_LANG_SOURCE([[ - #include - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - }]])], - [gl_cv___builtin_expect="in "], - [gl_cv___builtin_expect=no])])]) - if test "$gl_cv___builtin_expect" = yes; then - AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) - elif test "$gl_cv___builtin_expect" = "in "; then - AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) - fi - AH_VERBATIM([HAVE___BUILTIN_EXPECT], - [/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#undef HAVE___BUILTIN_EXPECT -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - ]) -]) diff --git a/m4/codeset.m4 b/m4/codeset.m4 index bc98201..280f556 100644 --- a/m4/codeset.m4 +++ b/m4/codeset.m4 @@ -1,6 +1,6 @@ # codeset.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation, -dnl Inc. +dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019 Free Software +dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/config-h.m4 b/m4/config-h.m4 index 6e6e661..7379df7 100644 --- a/m4/config-h.m4 +++ b/m4/config-h.m4 @@ -1,6 +1,6 @@ # Say that -DHAVE_CONFIG_H is not needed. -dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/configmake.m4 b/m4/configmake.m4 deleted file mode 100644 index b783296..0000000 --- a/m4/configmake.m4 +++ /dev/null @@ -1,55 +0,0 @@ -# configmake.m4 serial 2 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# gl_CONFIGMAKE_PREP -# ------------------ -# Guarantee all of the standard directory variables, even when used with -# autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir -# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b, -# and runstatedir in 1.14.1). -AC_DEFUN([gl_CONFIGMAKE_PREP], -[ - dnl Technically, datadir should default to datarootdir. But if - dnl autoconf is too old to provide datarootdir, then reversing the - dnl definition is a reasonable compromise. Only AC_SUBST a variable - dnl if it was not already defined earlier by autoconf. - if test "x$datarootdir" = x; then - AC_SUBST([datarootdir], ['${datadir}']) - fi - dnl Copy the approach used in autoconf 2.60. - if test "x$docdir" = x; then - AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) - fi - dnl The remaining variables missing from autoconf 2.59 are easier. - if test "x$htmldir" = x; then - AC_SUBST([htmldir], ['${docdir}']) - fi - if test "x$dvidir" = x; then - AC_SUBST([dvidir], ['${docdir}']) - fi - if test "x$pdfdir" = x; then - AC_SUBST([pdfdir], ['${docdir}']) - fi - if test "x$psdir" = x; then - AC_SUBST([psdir], ['${docdir}']) - fi - if test "x$lispdir" = x; then - AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp']) - fi - if test "x$localedir" = x; then - AC_SUBST([localedir], ['${datarootdir}/locale']) - fi - dnl Added in autoconf 2.70 - if test "x$runstatedir" = x; then - AC_SUBST([runstatedir], ['${localstatedir}/run']) - fi - - dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely - dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe. - AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) -]) diff --git a/m4/extensions.m4 b/m4/extensions.m4 index f854338..fd1ce81 100644 --- a/m4/extensions.m4 +++ b/m4/extensions.m4 @@ -1,7 +1,7 @@ -# serial 17 -*- Autoconf -*- +# serial 18 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -118,6 +118,11 @@ dnl configure.ac when using autoheader 2.62. #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ @@ -163,6 +168,7 @@ dnl configure.ac when using autoheader 2.62. [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) + AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4 index 00f9609..84421ce 100644 --- a/m4/extern-inline.m4 +++ b/m4/extern-inline.m4 @@ -1,6 +1,6 @@ dnl 'extern inline' a la ISO C99. -dnl Copyright 2012-2017 Free Software Foundation, Inc. +dnl Copyright 2012-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,7 +11,7 @@ AC_DEFUN([gl_EXTERN_INLINE], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see - . + . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f @@ -25,20 +25,32 @@ AC_DEFUN([gl_EXTERN_INLINE], if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions - from calling static functions. This bug is known to occur on: + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: OS X 10.8 and earlier; see: - http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see - http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: - http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. */ + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ diff --git a/m4/fcntl-o.m4 b/m4/fcntl-o.m4 deleted file mode 100644 index b388d89..0000000 --- a/m4/fcntl-o.m4 +++ /dev/null @@ -1,141 +0,0 @@ -# fcntl-o.m4 serial 5 -dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Written by Paul Eggert. - -# Test whether the flags O_NOATIME and O_NOFOLLOW actually work. -# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. -# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. -AC_DEFUN([gl_FCNTL_O_FLAGS], -[ - dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. - dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes - dnl AC_GNU_SOURCE. - m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], - [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], - [AC_REQUIRE([AC_GNU_SOURCE])]) - - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_HEADERS_ONCE([unistd.h]) - AC_CHECK_FUNCS_ONCE([symlink]) - AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include - #include - #if HAVE_UNISTD_H - # include - #else /* on Windows with MSVC */ - # include - # include - # defined sleep(n) _sleep ((n) * 1000) - #endif - #include - #ifndef O_NOATIME - #define O_NOATIME 0 - #endif - #ifndef O_NOFOLLOW - #define O_NOFOLLOW 0 - #endif - static int const constants[] = - { - O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, - O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY - }; - ]], - [[ - int result = !constants; - #if HAVE_SYMLINK - { - static char const sym[] = "conftest.sym"; - if (symlink ("/dev/null", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - if (unlink (sym) != 0 || symlink (".", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_RDONLY | O_NOFOLLOW); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - unlink (sym); - } - #endif - { - static char const file[] = "confdefs.h"; - int fd = open (file, O_RDONLY | O_NOATIME); - if (fd < 0) - result |= 8; - else - { - struct stat st0; - if (fstat (fd, &st0) != 0) - result |= 16; - else - { - char c; - sleep (1); - if (read (fd, &c, 1) != 1) - result |= 24; - else - { - if (close (fd) != 0) - result |= 32; - else - { - struct stat st1; - if (stat (file, &st1) != 0) - result |= 40; - else - if (st0.st_atime != st1.st_atime) - result |= 64; - } - } - } - } - } - return result;]])], - [gl_cv_header_working_fcntl_h=yes], - [case $? in #( - 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( - 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( - 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( - *) gl_cv_header_working_fcntl_h='no';; - esac], - [case "$host_os" in - # Guess 'no' on native Windows. - mingw*) gl_cv_header_working_fcntl_h='no' ;; - *) gl_cv_header_working_fcntl_h=cross-compiling ;; - esac - ]) - ]) - - case $gl_cv_header_working_fcntl_h in #( - *O_NOATIME* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], - [Define to 1 if O_NOATIME works.]) - - case $gl_cv_header_working_fcntl_h in #( - *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], - [Define to 1 if O_NOFOLLOW works.]) -]) diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 3ebc7b7..8cc7827 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,5 +1,5 @@ -# getopt.m4 serial 46 -dnl Copyright (C) 2002-2006, 2008-2017 Free Software Foundation, Inc. +# getopt.m4 serial 47 +dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -302,8 +302,10 @@ dnl is ambiguous with environment values that contain newlines. ]])], [gl_cv_func_getopt_gnu=yes], [gl_cv_func_getopt_gnu=no], - [dnl Cross compiling. Assume the worst, even on glibc platforms. - gl_cv_func_getopt_gnu="guessing no" + [dnl Cross compiling. + dnl Assume the worst, even on glibc platforms. + dnl But obey --enable-cross-guesses. + gl_cv_func_getopt_gnu="$gl_cross_guess_normal" ]) case $gl_had_POSIXLY_CORRECT in exported) ;; diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 index efa114d..7eebabd 100644 --- a/m4/gettimeofday.m4 +++ b/m4/gettimeofday.m4 @@ -1,6 +1,6 @@ -# serial 24 +# serial 27 -# Copyright (C) 2001-2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2003, 2005, 2007, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -103,12 +103,14 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [gl_cv_func_gettimeofday_clobber=yes], [# When cross-compiling: case "$host_os" in - # Guess all is fine on glibc systems. - *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess all is fine on musl systems. + *-musl*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_gettimeofday_clobber="$gl_cross_guess_inverted" ;; esac ])]) diff --git a/m4/glibc21.m4 b/m4/glibc21.m4 deleted file mode 100644 index 2e30ed6..0000000 --- a/m4/glibc21.m4 +++ /dev/null @@ -1,34 +0,0 @@ -# glibc21.m4 serial 5 -dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2017 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# Test for the GNU C Library, version 2.1 or newer, or uClibc. -# From Bruno Haible. - -AC_DEFUN([gl_GLIBC21], - [ - AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], - [ac_cv_gnu_library_2_1], - [AC_EGREP_CPP([Lucky], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif -#ifdef __UCLIBC__ - Lucky user -#endif - ], - [ac_cv_gnu_library_2_1=yes], - [ac_cv_gnu_library_2_1=no]) - ] - ) - AC_SUBST([GLIBC21]) - GLIBC21="$ac_cv_gnu_library_2_1" - ] -) diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 index d28c84d..9a9d31e 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -11,7 +11,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -27,7 +27,40 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h crc getopt-gnu gettext-h gettimeofday locale mbrtowc mbsrtowcs stdbool stdio striconv string strstr sys_stat sys_time unistd wchar wcrtomb wcsdup wctob wctype-h +# gnulib-tool --import \ +# --lib=libgnu \ +# --source-base=lib \ +# --m4-base=m4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# assert \ +# btowc \ +# config-h \ +# crc \ +# extensions \ +# getopt-gnu \ +# gettext-h \ +# gettimeofday \ +# locale \ +# mbrtowc \ +# mbsrtowcs \ +# monetary \ +# stdbool \ +# stdio \ +# striconv \ +# string \ +# sys_stat \ +# sys_time \ +# unistd \ +# wchar \ +# wcrtomb \ +# wcsdup \ +# wctob \ +# wctype-h # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) @@ -36,17 +69,18 @@ gl_MODULES([ btowc config-h crc + extensions getopt-gnu gettext-h gettimeofday locale mbrtowc mbsrtowcs + monetary stdbool stdio striconv string - strstr sys_stat sys_time unistd diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index 36f2acc..479c9de 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,9 +1,11 @@ -# gnulib-common.m4 serial 38 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# gnulib-common.m4 serial 45 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. +AC_PREREQ([2.62]) + # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ @@ -14,12 +16,18 @@ AC_DEFUN([gl_COMMON], [ AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ -#if ! (defined _Noreturn \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ - || 0x5110 <= __SUNPRO_C) +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER))) +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif defined _MSC_VER && 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -72,7 +80,68 @@ AC_DEFUN([gl_COMMON_BODY], [ #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif + +/* The __malloc__ attribute was added in gcc 3. */ +#if 3 <= __GNUC__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC /* empty */ +#endif ]) + AH_VERBATIM([async_safe], +[/* The _GL_ASYNC_SAFE marker should be attached to functions that are + signal handlers (for signals other than SIGABRT, SIGPIPE) or can be + invoked from such signal handlers. Such functions have some restrictions: + * All functions that it calls should be marked _GL_ASYNC_SAFE as well, + or should be listed as async-signal-safe in POSIX + + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in + particular, are NOT async-signal-safe. + * All memory locations (variables and struct fields) that these functions + access must be marked 'volatile'. This holds for both read and write + accesses. Otherwise the compiler might optimize away stores to and + reads from such locations that occur in the program, depending on its + data flow analysis. For example, when the program contains a loop + that is intended to inspect a variable set from within a signal handler + while (!signal_occurred) + ; + the compiler is allowed to transform this into an endless loop if the + variable 'signal_occurred' is not declared 'volatile'. + Additionally, recall that: + * A signal handler should not modify errno (except if it is a handler + for a fatal signal and ends by raising the same signal again, thus + provoking the termination of the process). If it invokes a function + that may clobber errno, it needs to save and restore the value of + errno. */ +#define _GL_ASYNC_SAFE +]) + dnl Hint which direction to take regarding cross-compilation guesses: + dnl When a user installs a program on a platform they are not intimately + dnl familiar with, --enable-cross-guesses=conservative is the appropriate + dnl choice. It implements the "If we don't know, assume the worst" principle. + dnl However, when an operating system developer (on a platform which is not + dnl yet known to gnulib) builds packages for their platform, they want to + dnl expose, not hide, possible platform bugs; in this case, + dnl --enable-cross-guesses=risky is the appropriate choice. + dnl Sets the variables + dnl gl_cross_guess_normal (to be used when 'yes' is good and 'no' is bad), + dnl gl_cross_guess_inverted (to be used when 'no' is good and 'yes' is bad). + AC_ARG_ENABLE([cross-guesses], + [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}], + [specify policy for cross-compilation guesses])], + [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then + AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses]) + enableval=conservative + fi + gl_cross_guesses="$enableval"], + [gl_cross_guesses=conservative]) + if test $gl_cross_guesses = risky; then + gl_cross_guess_normal="guessing yes" + gl_cross_guess_inverted="guessing no" + else + gl_cross_guess_normal="guessing no" + gl_cross_guess_inverted="guessing yes" + fi dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics @@ -207,13 +276,6 @@ AC_DEFUN([gl_FEATURES_H], AC_SUBST([HAVE_FEATURES_H]) ]) -# m4_foreach_w -# is a backport of autoconf-2.59c's m4_foreach_w. -# Remove this macro when we can assume autoconf >= 2.60. -m4_ifndef([m4_foreach_w], - [m4_define([m4_foreach_w], - [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) - # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. @@ -226,15 +288,14 @@ m4_ifndef([AS_VAR_IF], # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. # This is like AC_PROG_CC_C99, except that -# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC -# , +# , # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 -# . +# . # Remaining problems: # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice -# . +# . # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ @@ -315,25 +376,6 @@ Amsterdam AC_SUBST([RANLIB]) ]) -# AC_PROG_MKDIR_P -# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix -# for interoperability with automake-1.9.6 from autoconf-2.62. -# Remove this macro when we can assume autoconf >= 2.62 or -# autoconf >= 2.60 && automake >= 1.10. -# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. -m4_ifndef([AC_AUTOCONF_VERSION],[ -m4_ifdef([AC_PROG_MKDIR_P], [ - dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. - m4_define([AC_PROG_MKDIR_P], - m4_defn([AC_PROG_MKDIR_P])[ - AC_SUBST([MKDIR_P])])], [ - dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. - AC_DEFUN_ONCE([AC_PROG_MKDIR_P], - [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake - MKDIR_P='$(mkdir_p)' - AC_SUBST([MKDIR_P])])]) -]) - # AC_C_RESTRICT # This definition is copied from post-2.69 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed @@ -347,16 +389,16 @@ AC_DEFUN([AC_C_RESTRICT], for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } - ]], - [[int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); - ]])], + [[typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + ]], + [[int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -407,61 +449,3 @@ AC_DEFUN([gl_CACHE_VAL_SILENT], # AS_VAR_COPY was added in autoconf 2.63b m4_define_default([AS_VAR_COPY], [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])]) - -# AC_PROG_SED was added in autoconf 2.59b -m4_ifndef([AC_PROG_SED], -[AC_DEFUN([AC_PROG_SED], -[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED, - [dnl ac_script should not contain more than 99 commands (for HP-UX sed), - dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed. - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - AS_UNSET([ac_script]) - if test -z "$SED"; then - ac_path_SED_found=false - _AS_PATH_WALK([], [ - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - AS_EXECUTABLE_P(["$ac_path_SED"]) || continue - case `"$ac_path_SED" --version 2>&1` in - *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;; - *) - ac_count=0 - _AS_ECHO_N([0123456789]) >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >> conftest.nl - "$ac_path_SED" -f conftest.sed conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best so far, but keep looking for better - ac_cv_path_SED=$ac_path_SED - ac_path_SED_max=$ac_count - fi - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; - esac - $ac_path_SED_found && break 3 - done - done]) - if test -z "$ac_cv_path_SED"; then - AC_ERROR([no acceptable sed could be found in \$PATH]) - fi - else - ac_cv_path_SED=$SED - fi - ]) - SED="$ac_cv_path_SED" - AC_SUBST([SED])dnl - rm -f conftest.sed -]) -]) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index d953a24..44a1468 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -1,5 +1,5 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -12,7 +12,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -46,11 +46,9 @@ AC_DEFUN([gl_EARLY], # Code from module absolute-header: # Code from module assert: # Code from module btowc: - # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-strcase: # Code from module config-h: - # Code from module configmake: # Code from module crc: # Code from module extensions: # Code from module extern-inline: @@ -70,11 +68,13 @@ AC_DEFUN([gl_EARLY], # Code from module localcharset: # Code from module locale: # Code from module localtime-buffer: + # Code from module lock: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbsrtowcs: # Code from module mbtowc: # Code from module memchr: + # Code from module monetary: # Code from module multiarch: # Code from module nocrash: # Code from module snippet/_Noreturn: @@ -92,11 +92,11 @@ AC_DEFUN([gl_EARLY], # Code from module striconv: # Code from module string: # Code from module strnlen1: - # Code from module strstr: - # Code from module strstr-simple: # Code from module sys_stat: # Code from module sys_time: # Code from module sys_types: + # Code from module threadlib: + gl_THREADLIB_EARLY # Code from module time: # Code from module unistd: # Code from module unistr/base: @@ -110,6 +110,10 @@ AC_DEFUN([gl_EARLY], # Code from module wctob: # Code from module wctomb: # Code from module wctype-h: + # Code from module windows-mutex: + # Code from module windows-once: + # Code from module windows-recmutex: + # Code from module windows-rwlock: # Code from module wmemcpy: ]) @@ -186,6 +190,7 @@ AC_DEFUN([gl_INIT], gl_PREREQ_MBSRTOWCS fi gl_WCHAR_MODULE_INDICATOR([mbsrtowcs]) + gl_MONETARY_H gl_MULTIARCH gt_TYPE_SSIZE_T AM_STDBOOL_H @@ -197,15 +202,6 @@ AC_DEFUN([gl_INIT], gl_libdeps="$gl_libdeps $LIBICONV" fi gl_HEADER_STRING_H - gl_FUNC_STRSTR - if test $REPLACE_STRSTR = 1; then - AC_LIBOBJ([strstr]) - fi - gl_FUNC_STRSTR_SIMPLE - if test $REPLACE_STRSTR = 1; then - AC_LIBOBJ([strstr]) - fi - gl_STRING_MODULE_INDICATOR([strstr]) gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P gl_HEADER_SYS_TIME_H @@ -239,11 +235,10 @@ AC_DEFUN([gl_INIT], fi gl_WCHAR_MODULE_INDICATOR([wctob]) gl_WCTYPE_H - gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547=false - gl_gnulib_enabled_configmake=false gl_gnulib_enabled_30838f5439487421042f2225bed3af76=false gl_gnulib_enabled_localcharset=false gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9=false + gl_gnulib_enabled_lock=false gl_gnulib_enabled_mbsinit=false gl_gnulib_enabled_mbtowc=false gl_gnulib_enabled_memchr=false @@ -251,27 +246,17 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_stdlib=false gl_gnulib_enabled_streq=false gl_gnulib_enabled_strnlen1=false + gl_gnulib_enabled_threadlib=false gl_gnulib_enabled_verify=false gl_gnulib_enabled_wctomb=false + gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=false + gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=false + gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=false + gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=false gl_gnulib_enabled_wmemcpy=false - func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547 () - { - if ! $gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547; then - gl___BUILTIN_EXPECT - gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547=true - fi - } - func_gl_gnulib_m4code_configmake () - { - if ! $gl_gnulib_enabled_configmake; then - gl_CONFIGMAKE_PREP - gl_gnulib_enabled_configmake=true - fi - } func_gl_gnulib_m4code_30838f5439487421042f2225bed3af76 () { if ! $gl_gnulib_enabled_30838f5439487421042f2225bed3af76; then - gl_HARD_LOCALE gl_gnulib_enabled_30838f5439487421042f2225bed3af76=true fi } @@ -279,10 +264,10 @@ AC_DEFUN([gl_INIT], { if ! $gl_gnulib_enabled_localcharset; then gl_LOCALCHARSET - LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" + dnl For backward compatibility. Some packages still use this. + LOCALCHARSET_TESTS_ENVIRONMENT= AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_gnulib_enabled_localcharset=true - func_gl_gnulib_m4code_configmake fi } func_gl_gnulib_m4code_2049e887c7e5308faad27b3f894bb8c9 () @@ -293,6 +278,27 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9=true fi } + func_gl_gnulib_m4code_lock () + { + if ! $gl_gnulib_enabled_lock; then + gl_LOCK + gl_MODULE_INDICATOR([lock]) + gl_gnulib_enabled_lock=true + func_gl_gnulib_m4code_threadlib + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 + fi + if test $gl_threads_api = windows; then + func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef + fi + fi + } func_gl_gnulib_m4code_mbsinit () { if ! $gl_gnulib_enabled_mbsinit; then @@ -312,7 +318,7 @@ AC_DEFUN([gl_INIT], { if ! $gl_gnulib_enabled_mbtowc; then gl_FUNC_MBTOWC - if test $REPLACE_MBTOWC = 1; then + if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then AC_LIBOBJ([mbtowc]) gl_PREREQ_MBTOWC fi @@ -360,6 +366,13 @@ AC_DEFUN([gl_INIT], func_gl_gnulib_m4code_memchr fi } + func_gl_gnulib_m4code_threadlib () + { + if ! $gl_gnulib_enabled_threadlib; then + AC_REQUIRE([gl_THREADLIB]) + gl_gnulib_enabled_threadlib=true + fi + } func_gl_gnulib_m4code_verify () { if ! $gl_gnulib_enabled_verify; then @@ -379,6 +392,54 @@ AC_DEFUN([gl_INIT], func_gl_gnulib_m4code_stdlib fi } + func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 () + { + if ! $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_LIBOBJ([windows-mutex]) + ;; + esac + gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=true + fi + } + func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab () + { + if ! $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_LIBOBJ([windows-once]) + ;; + esac + gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=true + fi + } + func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 () + { + if ! $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_LIBOBJ([windows-recmutex]) + ;; + esac + gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=true + fi + } + func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef () + { + if ! $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_LIBOBJ([windows-rwlock]) + ;; + esac + gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=true + fi + } func_gl_gnulib_m4code_wmemcpy () { if ! $gl_gnulib_enabled_wmemcpy; then @@ -402,6 +463,9 @@ AC_DEFUN([gl_INIT], if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then func_gl_gnulib_m4code_localcharset fi + if test $HAVE_MBRTOWC = 0 || { test $REPLACE_MBRTOWC = 1 && { test $HAVE_MBSINIT = 0 || test $REPLACE_MBSTATE_T = 1; }; }; then + func_gl_gnulib_m4code_lock + fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then func_gl_gnulib_m4code_mbsinit fi @@ -414,12 +478,6 @@ AC_DEFUN([gl_INIT], if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then func_gl_gnulib_m4code_strnlen1 fi - if test $REPLACE_STRSTR = 1; then - func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547 - fi - if test $REPLACE_STRSTR = 1; then - func_gl_gnulib_m4code_memchr - fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then func_gl_gnulib_m4code_mbsinit fi @@ -430,11 +488,10 @@ AC_DEFUN([gl_INIT], func_gl_gnulib_m4code_wctomb fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_37f71b604aa9c54446783d80f42fe547], [$gl_gnulib_enabled_37f71b604aa9c54446783d80f42fe547]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_configmake], [$gl_gnulib_enabled_configmake]) AM_CONDITIONAL([gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76], [$gl_gnulib_enabled_30838f5439487421042f2225bed3af76]) AM_CONDITIONAL([gl_GNULIB_ENABLED_localcharset], [$gl_gnulib_enabled_localcharset]) AM_CONDITIONAL([gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9], [$gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_lock], [$gl_gnulib_enabled_lock]) AM_CONDITIONAL([gl_GNULIB_ENABLED_mbsinit], [$gl_gnulib_enabled_mbsinit]) AM_CONDITIONAL([gl_GNULIB_ENABLED_mbtowc], [$gl_gnulib_enabled_mbtowc]) AM_CONDITIONAL([gl_GNULIB_ENABLED_memchr], [$gl_gnulib_enabled_memchr]) @@ -442,8 +499,13 @@ AC_DEFUN([gl_INIT], AM_CONDITIONAL([gl_GNULIB_ENABLED_stdlib], [$gl_gnulib_enabled_stdlib]) AM_CONDITIONAL([gl_GNULIB_ENABLED_streq], [$gl_gnulib_enabled_streq]) AM_CONDITIONAL([gl_GNULIB_ENABLED_strnlen1], [$gl_gnulib_enabled_strnlen1]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_threadlib], [$gl_gnulib_enabled_threadlib]) AM_CONDITIONAL([gl_GNULIB_ENABLED_verify], [$gl_gnulib_enabled_verify]) AM_CONDITIONAL([gl_GNULIB_ENABLED_wctomb], [$gl_gnulib_enabled_wctomb]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440], [$gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab], [$gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354], [$gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef], [$gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef]) AM_CONDITIONAL([gl_GNULIB_ENABLED_wmemcpy], [$gl_gnulib_enabled_wmemcpy]) # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ @@ -596,7 +658,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/c-strcase.h lib/c-strcasecmp.c lib/c-strncasecmp.c - lib/config.charset lib/crc.c lib/crc.h lib/getopt-cdefs.in.h @@ -610,6 +671,9 @@ AC_DEFUN([gl_FILE_LIST], [ lib/getopt_int.h lib/gettext.h lib/gettimeofday.c + lib/glthread/lock.c + lib/glthread/lock.h + lib/glthread/threadlib.c lib/hard-locale.c lib/hard-locale.h lib/iconv.c @@ -636,21 +700,18 @@ AC_DEFUN([gl_FILE_LIST], [ lib/mbtowc.c lib/memchr.c lib/memchr.valgrind - lib/ref-add.sin - lib/ref-del.sin + lib/monetary.in.h lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio.in.h lib/stdlib.in.h - lib/str-two-way.h lib/streq.h lib/striconv.c lib/striconv.h lib/string.in.h lib/strnlen1.c lib/strnlen1.h - lib/strstr.c lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h @@ -674,24 +735,29 @@ AC_DEFUN([gl_FILE_LIST], [ lib/wctomb.c lib/wctype-h.c lib/wctype.in.h + lib/windows-initguard.h + lib/windows-mutex.c + lib/windows-mutex.h + lib/windows-once.c + lib/windows-once.h + lib/windows-recmutex.c + lib/windows-recmutex.h + lib/windows-rwlock.c + lib/windows-rwlock.h lib/wmemcpy-impl.h lib/wmemcpy.c m4/00gnulib.m4 m4/absolute-header.m4 m4/assert.m4 m4/btowc.m4 - m4/builtin-expect.m4 m4/codeset.m4 m4/config-h.m4 - m4/configmake.m4 m4/extensions.m4 m4/extern-inline.m4 - m4/fcntl-o.m4 m4/getopt.m4 m4/gettimeofday.m4 - m4/glibc21.m4 m4/gnulib-common.m4 - m4/hard-locale.m4 + m4/host-cpu-c-abi.m4 m4/iconv.m4 m4/iconv_h.m4 m4/iconv_open.m4 @@ -708,6 +774,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/locale-zh.m4 m4/locale_h.m4 m4/localtime-buffer.m4 + m4/lock.m4 m4/longlong.m4 m4/mbrtowc.m4 m4/mbsinit.m4 @@ -716,9 +783,11 @@ AC_DEFUN([gl_FILE_LIST], [ m4/mbtowc.m4 m4/memchr.m4 m4/mmap-anon.m4 + m4/monetary_h.m4 m4/multiarch.m4 m4/nocrash.m4 m4/off_t.m4 + m4/pthread_rwlock_rdlock.m4 m4/ssize_t.m4 m4/stdbool.m4 m4/stddef_h.m4 @@ -726,11 +795,11 @@ AC_DEFUN([gl_FILE_LIST], [ m4/stdio_h.m4 m4/stdlib_h.m4 m4/string_h.m4 - m4/strstr.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_types_h.m4 + m4/threadlib.m4 m4/time_h.m4 m4/unistd_h.m4 m4/warn-on-use.m4 diff --git a/m4/hard-locale.m4 b/m4/hard-locale.m4 deleted file mode 100644 index d79acd6..0000000 --- a/m4/hard-locale.m4 +++ /dev/null @@ -1,11 +0,0 @@ -# hard-locale.m4 serial 8 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl No prerequisites of lib/hard-locale.c. -AC_DEFUN([gl_HARD_LOCALE], -[ - : -]) diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 new file mode 100644 index 0000000..af8c05c --- /dev/null +++ b/m4/host-cpu-c-abi.m4 @@ -0,0 +1,664 @@ +# host-cpu-c-abi.m4 serial 12 +dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible and Sam Steingold. + +dnl Sets the HOST_CPU variable to the canonical name of the CPU. +dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its +dnl C language ABI (application binary interface). +dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in +dnl config.h. +dnl +dnl This canonical name can be used to select a particular assembly language +dnl source file that will interoperate with C code on the given host. +dnl +dnl For example: +dnl * 'i386' and 'sparc' are different canonical names, because code for i386 +dnl will not run on SPARC CPUs and vice versa. They have different +dnl instruction sets. +dnl * 'sparc' and 'sparc64' are different canonical names, because code for +dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code +dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit +dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit +dnl mode, but not both. +dnl * 'mips' and 'mipsn32' are different canonical names, because they use +dnl different argument passing and return conventions for C functions, and +dnl although the instruction set of 'mips' is a large subset of the +dnl instruction set of 'mipsn32'. +dnl * 'mipsn32' and 'mips64' are different canonical names, because they use +dnl different sizes for the C types like 'int' and 'void *', and although +dnl the instruction sets of 'mipsn32' and 'mips64' are the same. +dnl * The same canonical name is used for different endiannesses. You can +dnl determine the endianness through preprocessor symbols: +dnl - 'arm': test __ARMEL__. +dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. +dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. +dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 +dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because +dnl - Instructions that do not exist on all of these CPUs (cmpxchg, +dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your +dnl assembly language source files use such instructions, you will +dnl need to make the distinction. +dnl - Speed of execution of the common instruction set is reasonable across +dnl the entire family of CPUs. If you have assembly language source files +dnl that are optimized for particular CPU types (like GNU gmp has), you +dnl will need to make the distinction. +dnl See . +AC_DEFUN([gl_HOST_CPU_C_ABI], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], + [case "$host_cpu" in + +changequote(,)dnl + i[34567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=i386 + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=x86_64-x32], + [gl_cv_host_cpu_c_abi=x86_64])], + [gl_cv_host_cpu_c_abi=i386]) + ;; + +changequote(,)dnl + alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=alpha + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __aarch64__ + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=arm64-ilp32], + [gl_cv_host_cpu_c_abi=arm64])], + [# Don't distinguish little-endian and big-endian arm, since they + # don't require different machine code for simple operations and + # since the user can distinguish them through the preprocessor + # defines __ARMEL__ vs. __ARMEB__. + # But distinguish arm which passes floating-point arguments and + # return values in integer registers (r0, r1, ...) - this is + # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which + # passes them in float registers (s0, s1, ...) and double registers + # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer + # sets the preprocessor defines __ARM_PCS (for the first case) and + # __ARM_PCS_VFP (for the second case), but older GCC does not. + echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c + # Look for a reference to the register d0 in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then + gl_cv_host_cpu_c_abi=armhf + else + gl_cv_host_cpu_c_abi=arm + fi + rm -f conftest* + ]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=hppa64], + [gl_cv_host_cpu_c_abi=hppa]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=ia64-ilp32], + [gl_cv_host_cpu_c_abi=ia64]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mips64], + [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIO32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (_MIPS_SIM == _ABIN32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mipsn32], + [gl_cv_host_cpu_c_abi=mips])]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + ]])], + [# On powerpc64, there are two ABIs on Linux: The AIX compatible + # one and the ELFv2 one. The latter defines _CALL_ELF=2. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _CALL_ELF && _CALL_ELF == 2 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=powerpc64-elfv2], + [gl_cv_host_cpu_c_abi=powerpc64]) + ], + [gl_cv_host_cpu_c_abi=powerpc]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi=powerpc + ;; + + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=s390x], + [gl_cv_host_cpu_c_abi=s390]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=sparc64], + [gl_cv_host_cpu_c_abi=sparc]) + ;; + + *) + gl_cv_host_cpu_c_abi="$host_cpu" + ;; + esac + ]) + + dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. + HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` + HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" + AC_SUBST([HOST_CPU]) + AC_SUBST([HOST_CPU_C_ABI]) + + # This was + # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) + # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) + # earlier, but KAI C++ 3.2d doesn't like this. + sed -e 's/-/_/g' >> confdefs.h < + ]], [iconv iconv_open]) ]) dnl Unconditionally enables the replacement of . @@ -30,6 +36,7 @@ AC_DEFUN([gl_ICONV_MODULE_INDICATOR], AC_DEFUN([gl_ICONV_H_DEFAULTS], [ + m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) GNULIB_ICONV=0; AC_SUBST([GNULIB_ICONV]) dnl Assume proper GNU behavior unless another module says otherwise. ICONV_CONST=; AC_SUBST([ICONV_CONST]) @@ -37,5 +44,12 @@ AC_DEFUN([gl_ICONV_H_DEFAULTS], REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN]) REPLACE_ICONV_UTF=0; AC_SUBST([REPLACE_ICONV_UTF]) ICONV_H=''; AC_SUBST([ICONV_H]) + m4_ifdef([gl_POSIXCHECK], + [ICONV_H='iconv.h'], + [if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then + dnl Override always, to support the C++ GNULIB_NAMESPACE. + ICONV_H='iconv.h' + fi + ]) AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) diff --git a/m4/iconv_open.m4 b/m4/iconv_open.m4 index 2517a5b..bfcd354 100644 --- a/m4/iconv_open.m4 +++ b/m4/iconv_open.m4 @@ -1,5 +1,5 @@ -# iconv_open.m4 serial 14 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# iconv_open.m4 serial 15 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -38,13 +38,16 @@ AC_DEFUN([gl_FUNC_ICONV_OPEN], fi m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [ gl_FUNC_ICONV_OPEN_UTF_SUPPORT - if test $gl_cv_func_iconv_supports_utf = no; then - REPLACE_ICONV_UTF=1 - AC_DEFINE([REPLACE_ICONV_UTF], [1], - [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.]) - REPLACE_ICONV=1 - gl_REPLACE_ICONV_OPEN - fi + case "$gl_cv_func_iconv_supports_utf" in + *yes) ;; + *) + REPLACE_ICONV_UTF=1 + AC_DEFINE([REPLACE_ICONV_UTF], [1], + [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.]) + REPLACE_ICONV=1 + gl_REPLACE_ICONV_OPEN + ;; + esac ]) fi ]) diff --git a/m4/include_next.m4 b/m4/include_next.m4 index 068f6f6..86eb2c9 100644 --- a/m4/include_next.m4 +++ b/m4/include_next.m4 @@ -1,5 +1,5 @@ # include_next.m4 serial 24 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/inline.m4 b/m4/inline.m4 index f00572e..525b7e0 100644 --- a/m4/inline.m4 +++ b/m4/inline.m4 @@ -1,5 +1,5 @@ # inline.m4 serial 4 -dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index 8b8a26e..a187196 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,5 +1,5 @@ -# lib-ld.m4 serial 7 -dnl Copyright (C) 1996-2003, 2009-2017 Free Software Foundation, Inc. +# lib-ld.m4 serial 9 +dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -120,11 +120,14 @@ else fi case $host in *-*-aix*) - AC_EGREP_CPP([yes], - [#if defined __powerpc64__ || defined _ARCH_PPC64 - yes - #endif - ], + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + ]])], [# The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in @@ -133,6 +136,24 @@ else esac ], []) ;; + sparc64-*-netbsd*) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [], + [# The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + ]) + ;; esac ]) LD="$acl_cv_path_LD" diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 index 1ce9a5a..0ff1073 100644 --- a/m4/lib-link.m4 +++ b/m4/lib-link.m4 @@ -1,12 +1,12 @@ -# lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. +# lib-link.m4 serial 28 +dnl Copyright (C) 2001-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -AC_PREREQ([2.54]) +AC_PREREQ([2.61]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. @@ -124,8 +124,8 @@ dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ - dnl Tell automake >= 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + dnl Complain if config.rpath is missing. + AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host @@ -187,17 +187,15 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -211,7 +209,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -670,7 +668,6 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi - popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index a5d56c8..8adb17b 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,18 +1,11 @@ -# lib-prefix.m4 serial 8 -dnl Copyright (C) 2001-2005, 2008-2017 Free Software Foundation, Inc. +# lib-prefix.m4 serial 14 +dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed @@ -32,9 +25,9 @@ AC_DEFUN([AC_LIB_PREFIX], eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -174,6 +167,24 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + case "$host_os" in + solaris*) + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _LP64 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_solaris_64bit=yes], + [gl_cv_solaris_64bit=no]) + ]);; + esac + dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], @@ -182,17 +193,10 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . + dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in @@ -202,33 +206,37 @@ sixtyfour bits fi ;; *) - dnl The result is a property of the system. However, non-system - dnl compilers sometimes have odd library search paths. Therefore - dnl prefer asking /usr/bin/gcc, if available, rather than $CC. - searchpath=`(if test -f /usr/bin/gcc \ - && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ - LC_ALL=C /usr/bin/gcc -print-search-dirs; \ - else \ - LC_ALL=C $CC -print-search-dirs; \ - fi) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib, not $prefix/lib64. + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + dnl The result is a property of the system. However, non-system + dnl compilers sometimes have odd library search paths. Therefore + dnl prefer asking /usr/bin/gcc, if available, rather than $CC. + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi fi ;; esac diff --git a/m4/libunistring-base.m4 b/m4/libunistring-base.m4 index ee648f2..829e71c 100644 --- a/m4/libunistring-base.m4 +++ b/m4/libunistring-base.m4 @@ -1,5 +1,5 @@ # libunistring-base.m4 serial 5 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/limits-h.m4 b/m4/limits-h.m4 index 443f91b..68f724c 100644 --- a/m4/limits-h.m4 +++ b/m4/limits-h.m4 @@ -1,6 +1,6 @@ dnl Check whether limits.h has needed features. -dnl Copyright 2016-2017 Free Software Foundation, Inc. +dnl Copyright 2016-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,14 +11,18 @@ AC_DEFUN_ONCE([gl_LIMITS_H], [ gl_CHECK_NEXT_HEADERS([limits.h]) - AC_CACHE_CHECK([whether limits.h has ULLONG_WIDTH etc.], + AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.], [gl_cv_header_limits_width], [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include - int ullw = ULLONG_WIDTH;]])], + [AC_LANG_PROGRAM( + [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + ]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then @@ -29,3 +33,11 @@ AC_DEFUN_ONCE([gl_LIMITS_H], AC_SUBST([LIMITS_H]) AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) + +dnl Unconditionally enables the replacement of . +AC_DEFUN([gl_REPLACE_LIMITS_H], +[ + AC_REQUIRE([gl_LIMITS_H]) + LIMITS_H='limits.h' + AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) +]) diff --git a/m4/localcharset.m4 b/m4/localcharset.m4 index 0c1ff38..2a7f82d 100644 --- a/m4/localcharset.m4 +++ b/m4/localcharset.m4 @@ -1,5 +1,5 @@ -# localcharset.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2009-2017 Free Software Foundation, Inc. +# localcharset.m4 serial 8 +dnl Copyright (C) 2002, 2004, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,10 +8,4 @@ AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) - AC_REQUIRE([gl_FCNTL_O_FLAGS]) - AC_CHECK_DECLS_ONCE([getc_unlocked]) - - dnl Prerequisites of the lib/Makefile.am snippet. - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_GLIBC21]) ]) diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4 index 93d3da7..cfa068d 100644 --- a/m4/locale-fr.m4 +++ b/m4/locale-fr.m4 @@ -1,5 +1,5 @@ -# locale-fr.m4 serial 17 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-fr.m4 serial 19 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,8 +24,14 @@ changequote(,)dnl struct tm t; char buf[16]; int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -33,9 +39,9 @@ int main () { if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -44,32 +50,33 @@ int main () { some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; -#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ +# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; -#endif +# endif return 0; +#endif } changequote([,])dnl ])]) @@ -153,7 +160,7 @@ int main () { variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE diff --git a/m4/locale-ja.m4 b/m4/locale-ja.m4 index c1d1154..487f68b 100644 --- a/m4/locale-ja.m4 +++ b/m4/locale-ja.m4 @@ -1,5 +1,5 @@ -# locale-ja.m4 serial 12 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-ja.m4 serial 14 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -25,9 +25,14 @@ struct tm t; char buf[16]; int main () { - const char *p; + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -35,9 +40,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -46,32 +51,36 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } return 0; +#endif } changequote([,])dnl ])]) diff --git a/m4/locale-zh.m4 b/m4/locale-zh.m4 index 1459418..8b81326 100644 --- a/m4/locale-zh.m4 +++ b/m4/locale-zh.m4 @@ -1,5 +1,5 @@ -# locale-zh.m4 serial 12 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-zh.m4 serial 14 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -26,9 +26,14 @@ struct tm t; char buf[16]; int main () { - const char *p; + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else /* Check whether the given locale name is recognized by the system. */ -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -36,9 +41,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -#else +# else if (setlocale (LC_ALL, "") == NULL) return 1; -#endif +# endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -47,32 +52,36 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -#if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -#endif -#ifdef __CYGWIN__ +# endif +# ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -#endif +# endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; +#endif } changequote([,])dnl ])]) diff --git a/m4/locale_h.m4 b/m4/locale_h.m4 index 7426a65..d28ba0c 100644 --- a/m4/locale_h.m4 +++ b/m4/locale_h.m4 @@ -1,5 +1,5 @@ -# locale_h.m4 serial 19 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# locale_h.m4 serial 21 +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -17,7 +17,7 @@ AC_DEFUN([gl_LOCALE_H], dnl If is replaced, then must also be replaced. AC_REQUIRE([gl_STDDEF_H]) - dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv' + dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in @@ -96,7 +96,7 @@ AC_DEFUN([gl_LOCALE_H], # include #endif ]], - [setlocale duplocale]) + [setlocale newlocale duplocale freelocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], @@ -113,10 +113,15 @@ AC_DEFUN([gl_LOCALE_H_DEFAULTS], GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) + GNULIB_LOCALENAME=0; AC_SUBST([GNULIB_LOCALENAME]) dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE]) HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) + HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) + REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) + REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) diff --git a/m4/localtime-buffer.m4 b/m4/localtime-buffer.m4 index 3965b5d..6d99828 100644 --- a/m4/localtime-buffer.m4 +++ b/m4/localtime-buffer.m4 @@ -1,5 +1,5 @@ # localtime-buffer.m4 serial 1 -dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/lock.m4 b/m4/lock.m4 new file mode 100644 index 0000000..93b76fa --- /dev/null +++ b/m4/lock.m4 @@ -0,0 +1,47 @@ +# lock.m4 serial 14 +dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([gl_LOCK], +[ + AC_REQUIRE([gl_THREADLIB]) + if test "$gl_threads_api" = posix; then + # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the + # pthread_rwlock_* functions. + has_rwlock=false + AC_CHECK_TYPE([pthread_rwlock_t], + [has_rwlock=true + AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], + [Define if the POSIX multithreading library has read/write locks.])], + [], + [#include ]) + if $has_rwlock; then + gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER + fi + # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM( + [[#include ]], + [[ +#if __FreeBSD__ == 4 +error "No, in FreeBSD 4.0 recursive mutexes actually don't work." +#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ + && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) +error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." +#else +int x = (int)PTHREAD_MUTEX_RECURSIVE; +return !x; +#endif + ]])], + [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1], + [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) + fi + gl_PREREQ_LOCK +]) + +# Prerequisites of lib/glthread/lock.c. +AC_DEFUN([gl_PREREQ_LOCK], [:]) diff --git a/m4/longlong.m4 b/m4/longlong.m4 index 9a3294b..08d0e36 100644 --- a/m4/longlong.m4 +++ b/m4/longlong.m4 @@ -1,14 +1,15 @@ -# longlong.m4 serial 17 -dnl Copyright (C) 1999-2007, 2009-2017 Free Software Foundation, Inc. +# longlong.m4 serial 18 +dnl Copyright (C) 1999-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. +AC_PREREQ([2.62]) + # Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.61, and can be faster -# than what's in Autoconf 2.62 through 2.68. +# This can be faster than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be @@ -56,8 +57,7 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.61, and can be faster -# than what's in Autoconf 2.62 through 2.68. +# This can be faster than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT diff --git a/m4/mbrtowc.m4 b/m4/mbrtowc.m4 index 216594e..255e5b0 100644 --- a/m4/mbrtowc.m4 +++ b/m4/mbrtowc.m4 @@ -1,5 +1,5 @@ -# mbrtowc.m4 serial 29 -*- coding: utf-8 -*- -dnl Copyright (C) 2001-2002, 2004-2005, 2008-2017 Free Software Foundation, +# mbrtowc.m4 serial 32 -*- coding: utf-8 -*- +dnl Copyright (C) 2001-2002, 2004-2005, 2008-2019 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -563,12 +563,11 @@ AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu*) - gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( @@ -600,7 +599,7 @@ AC_DEFUN([gl_MBRTOWC_C_LOCALE], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. - gl_cv_C_locale_sans_EILSEQ="guessing no" + gl_cv_C_locale_sans_EILSEQ="$gl_cross_guess_normal" AC_RUN_IFELSE( [AC_LANG_PROGRAM( @@ -635,6 +634,7 @@ AC_DEFUN([gl_MBRTOWC_C_LOCALE], # Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ + AC_REQUIRE([AC_C_INLINE]) : ]) diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4 index 5904a51..e2f45e7 100644 --- a/m4/mbsinit.m4 +++ b/m4/mbsinit.m4 @@ -1,5 +1,5 @@ # mbsinit.m4 serial 8 -dnl Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/mbsrtowcs.m4 b/m4/mbsrtowcs.m4 index 79b8d76..cbdde2c 100644 --- a/m4/mbsrtowcs.m4 +++ b/m4/mbsrtowcs.m4 @@ -1,5 +1,5 @@ # mbsrtowcs.m4 serial 13 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/mbstate_t.m4 b/m4/mbstate_t.m4 index 6325cf3..f669753 100644 --- a/m4/mbstate_t.m4 +++ b/m4/mbstate_t.m4 @@ -1,5 +1,5 @@ # mbstate_t.m4 serial 13 -dnl Copyright (C) 2000-2002, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/mbtowc.m4 b/m4/mbtowc.m4 index 378a4e2..5a4b92e 100644 --- a/m4/mbtowc.m4 +++ b/m4/mbtowc.m4 @@ -1,5 +1,5 @@ -# mbtowc.m4 serial 2 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +# mbtowc.m4 serial 3 +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,8 +8,13 @@ AC_DEFUN([gl_FUNC_MBTOWC], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - if false; then - REPLACE_MBTOWC=1 + AC_CHECK_FUNCS([mbtowc]) + if test $ac_cv_func_mbtowc = no; then + HAVE_MBTOWC=0 + else + if false; then + REPLACE_MBTOWC=1 + fi fi ]) diff --git a/m4/memchr.m4 b/m4/memchr.m4 index 62ce770..c12d20a 100644 --- a/m4/memchr.m4 +++ b/m4/memchr.m4 @@ -1,5 +1,5 @@ -# memchr.m4 serial 13 -dnl Copyright (C) 2002-2004, 2009-2017 Free Software Foundation, Inc. +# memchr.m4 serial 15 +dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -25,10 +25,12 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR], if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 - # http://bugzilla.redhat.com/499689 + # https://bugzilla.redhat.com/show_bug.cgi?id=499689 # memchr should not dereference overestimated length after a match - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 - # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # memchr should cast the second argument to 'unsigned char'. + # This bug exists in Android 4.3. # Assume that memchr works on platforms that lack mprotect. AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ @@ -74,15 +76,26 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR], if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } + /* Test against bug on Android 4.3. */ + { + char input[3]; + input[0] = 'a'; + input[1] = 'b'; + input[2] = 'c'; + if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) + result |= 8; + } return result; ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], [case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_memchr_works="guessing yes" ;; - # Be pessimistic for now. - *) gl_cv_func_memchr_works="guessing no" ;; + # Guess no on Android. + linux*-android*) gl_cv_func_memchr_works="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_memchr_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; esac ]) ]) diff --git a/m4/mmap-anon.m4 b/m4/mmap-anon.m4 index 263687d..50c3808 100644 --- a/m4/mmap-anon.m4 +++ b/m4/mmap-anon.m4 @@ -1,5 +1,5 @@ # mmap-anon.m4 serial 10 -dnl Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/monetary_h.m4 b/m4/monetary_h.m4 new file mode 100644 index 0000000..0763769 --- /dev/null +++ b/m4/monetary_h.m4 @@ -0,0 +1,61 @@ +# monetary_h.m4 serial 4 +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_MONETARY_H], +[ + AC_REQUIRE([gl_MONETARY_H_DEFAULTS]) + m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) + + AC_CHECK_HEADERS_ONCE([monetary.h]) + dnl For now, we provide a wrapper only if + dnl - module 'posixcheck' is present, or + dnl - C++ GNULIB_NAMESPACE support may be requested, or + dnl - the system already has a . + if m4_ifdef([gl_POSIXCHECK], [true], [m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]) || test $ac_cv_header_monetary_h = yes]); then + MONETARY_H='monetary.h' + + gl_CHECK_NEXT_HEADERS([monetary.h]) + if test $ac_cv_header_monetary_h = yes; then + HAVE_MONETARY_H=1 + else + HAVE_MONETARY_H=0 + fi + AC_SUBST([HAVE_MONETARY_H]) + + AC_CHECK_HEADERS_ONCE([xlocale.h]) + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + else + HAVE_XLOCALE_H=0 + fi + AC_SUBST([HAVE_XLOCALE_H]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ + #include + ]], [strfmon_l]) + else + MONETARY_H='' + fi + AC_SUBST([MONETARY_H]) + AM_CONDITIONAL([GL_GENERATE_MONETARY_H], [test -n "$MONETARY_H"]) +]) + +AC_DEFUN([gl_MONETARY_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_MONETARY_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) +]) + +AC_DEFUN([gl_MONETARY_H_DEFAULTS], +[ + GNULIB_STRFMON_L=0; AC_SUBST([GNULIB_STRFMON_L]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_STRFMON_L=1; AC_SUBST([HAVE_STRFMON_L]) + REPLACE_STRFMON_L=0; AC_SUBST([REPLACE_STRFMON_L]) +]) diff --git a/m4/multiarch.m4 b/m4/multiarch.m4 index 30006cb..d48316e 100644 --- a/m4/multiarch.m4 +++ b/m4/multiarch.m4 @@ -1,5 +1,5 @@ # multiarch.m4 serial 7 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/nocrash.m4 b/m4/nocrash.m4 index 2c2c5fb..8577038 100644 --- a/m4/nocrash.m4 +++ b/m4/nocrash.m4 @@ -1,5 +1,5 @@ -# nocrash.m4 serial 4 -dnl Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. +# nocrash.m4 serial 5 +dnl Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -53,7 +53,7 @@ nocrash_init (void) /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { - /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { @@ -72,14 +72,14 @@ nocrash_init (void) for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. - See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include diff --git a/m4/off_t.m4 b/m4/off_t.m4 index 92c45ef..711a2d4 100644 --- a/m4/off_t.m4 +++ b/m4/off_t.m4 @@ -1,5 +1,5 @@ # off_t.m4 serial 1 -dnl Copyright (C) 2012-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2012-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/pthread_rwlock_rdlock.m4 b/m4/pthread_rwlock_rdlock.m4 new file mode 100644 index 0000000..87886a3 --- /dev/null +++ b/m4/pthread_rwlock_rdlock.m4 @@ -0,0 +1,185 @@ +# pthread_rwlock_rdlock.m4 serial 4 +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Inspired by +dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c +dnl by Intel Corporation. + +dnl Test whether in a situation where +dnl - an rwlock is taken by a reader and has a writer waiting, +dnl - an additional reader requests the lock, +dnl - the waiting writer and the requesting reader threads have the same +dnl priority, +dnl the requesting reader thread gets blocked, so that at some point the +dnl waiting writer can acquire the lock. +dnl Without such a guarantee, when there a N readers and each of the readers +dnl spends more than 1/Nth of the time with the lock held, there is a high +dnl probability that the waiting writer will not get the lock in a given finite +dnl time, a phenomenon called "writer starvation". +dnl Without such a guarantee, applications have a hard time avoiding writer +dnl starvation. +dnl +dnl POSIX:2017 makes this requirement only for implementations that support TPS +dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO +dnl and SCHED_RR, see +dnl https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html +dnl but this test verifies the guarantee regardless of TPS and regardless of +dnl scheduling policy. +dnl Glibc does not provide this guarantee (and never will on Linux), see +dnl https://sourceware.org/bugzilla/show_bug.cgi?id=13701 +dnl https://bugzilla.redhat.com/show_bug.cgi?id=1410052 +AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], +[ + AC_REQUIRE([gl_THREADLIB_EARLY]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader], + [gl_cv_pthread_rwlock_rdlock_prefer_writer], + [save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include +#include + +#define SUCCEED() exit (0) +#define FAILURE() exit (1) +#define UNEXPECTED(n) (exit (10 + (n))) + +/* The main thread creates the waiting writer and the requesting reader threads + in the default way; this guarantees that they have the same priority. + We can reuse the main thread as first reader thread. */ + +static pthread_rwlock_t lock; +static pthread_t reader1; +static pthread_t writer; +static pthread_t reader2; +static pthread_t timer; +/* Used to pass control from writer to reader2 and from reader2 to timer, + as in a relay race. + Passing control from one running thread to another running thread + is most likely faster than to create the second thread. */ +static pthread_mutex_t baton; + +static void * +timer_func (void *ignored) +{ + /* Step 13 (can be before or after step 12): + The timer thread takes the baton, then waits a moment to make sure + it can tell whether the second reader thread is blocked at step 12. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (13); + usleep (100000); + /* By the time we get here, it's clear that the second reader thread is + blocked at step 12. This is the desired behaviour. */ + SUCCEED (); +} + +static void * +reader2_func (void *ignored) +{ + int err; + + /* Step 8 (can be before or after step 7): + The second reader thread takes the baton, then waits a moment to make sure + the writer thread has reached step 7. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (8); + usleep (100000); + /* Step 9: The second reader thread requests the lock. */ + err = pthread_rwlock_tryrdlock (&lock); + if (err == 0) + FAILURE (); + else if (err != EBUSY) + UNEXPECTED (9); + /* Step 10: Launch a timer, to test whether the next call blocks. */ + if (pthread_create (&timer, NULL, timer_func, NULL)) + UNEXPECTED (10); + /* Step 11: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (11); + /* Step 12: The second reader thread requests the lock. */ + err = pthread_rwlock_rdlock (&lock); + if (err == 0) + FAILURE (); + else + UNEXPECTED (12); +} + +static void * +writer_func (void *ignored) +{ + /* Step 4: Take the baton, so that the second reader thread does not go ahead + too early. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (4); + /* Step 5: Create the second reader thread. */ + if (pthread_create (&reader2, NULL, reader2_func, NULL)) + UNEXPECTED (5); + /* Step 6: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (6); + /* Step 7: The writer thread requests the lock. */ + if (pthread_rwlock_wrlock (&lock)) + UNEXPECTED (7); + return NULL; +} + +int +main () +{ + reader1 = pthread_self (); + + /* Step 1: The main thread initializes the lock and the baton. */ + if (pthread_rwlock_init (&lock, NULL)) + UNEXPECTED (1); + if (pthread_mutex_init (&baton, NULL)) + UNEXPECTED (1); + /* Step 2: The main thread acquires the lock as a reader. */ + if (pthread_rwlock_rdlock (&lock)) + UNEXPECTED (2); + /* Step 3: Create the writer thread. */ + if (pthread_create (&writer, NULL, writer_func, NULL)) + UNEXPECTED (3); + /* Job done. Go to sleep. */ + for (;;) + { + sleep (1); + } +} +]])], + [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes], + [gl_cv_pthread_rwlock_rdlock_prefer_writer=no], + [case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on musl systems. + *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on bionic systems. + *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess yes on native Windows with the mingw-w64 winpthreads library. + # Guess no on native Windows with the gnulib windows-rwlock module. + mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" + else + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" + fi + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; + esac + ]) + LIBS="$save_LIBS" + ]) + case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in + *yes) + AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1], + [Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.]) + ;; + esac +]) diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4 index 66ba9d4..38bcee1 100644 --- a/m4/ssize_t.m4 +++ b/m4/ssize_t.m4 @@ -1,5 +1,5 @@ # ssize_t.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2001-2003, 2006, 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/stdbool.m4 b/m4/stdbool.m4 index d368123..acb8522 100644 --- a/m4/stdbool.m4 +++ b/m4/stdbool.m4 @@ -1,6 +1,6 @@ # Check for stdbool.h that conforms to C99. -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -87,8 +87,8 @@ AC_DEFUN([AC_CHECK_HEADER_STDBOOL], char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4 index f45def1..979e3cf 100644 --- a/m4/stddef_h.m4 +++ b/m4/stddef_h.m4 @@ -1,6 +1,6 @@ dnl A placeholder for , for platforms that have issues. -# stddef_h.m4 serial 5 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# stddef_h.m4 serial 6 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,13 +10,33 @@ AC_DEFUN([gl_STDDEF_H], AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= - AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h], - [[#include - ]]) + + dnl Test whether the type max_align_t exists and whether its alignment + dnl "is as great as is supported by the implementation in all contexts". + AC_CACHE_CHECK([for good max_align_t], + [gl_cv_type_max_align_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + ]])], + [gl_cv_type_max_align_t=yes], + [gl_cv_type_max_align_t=no]) + ]) + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi + if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi + AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include @@ -28,6 +48,7 @@ AC_DEFUN([gl_STDDEF_H], REPLACE_NULL=1 STDDEF_H=stddef.h fi + AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then diff --git a/m4/stdint.m4 b/m4/stdint.m4 index 4bf3e47..11d8e8e 100644 --- a/m4/stdint.m4 +++ b/m4/stdint.m4 @@ -1,5 +1,5 @@ -# stdint.m4 serial 51 -dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. +# stdint.m4 serial 53 +dnl Copyright (C) 2001-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,6 +7,8 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. +AC_PREREQ([2.61]) + AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl @@ -364,8 +366,7 @@ int32_t i32 = INT32_C (0x7fffffff); esac dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. - LIMITS_H=limits.h - AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) + gl_REPLACE_LIMITS_H AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) @@ -541,9 +542,3 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], BITSIZEOF_WINT_T=32 fi ]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index 9ffbb85..6c9c104 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,5 +1,5 @@ -# stdio_h.m4 serial 48 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# stdio_h.m4 serial 49 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -28,7 +28,7 @@ AC_DEFUN([gl_STDIO_H], /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index 3537346..6121602 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -1,5 +1,5 @@ -# stdlib_h.m4 serial 44 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# stdlib_h.m4 serial 48 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -14,16 +14,19 @@ AC_DEFUN([gl_STDLIB_H], dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H +/* OpenIndiana has a bug: must be included before + . */ +# include # include #endif #if HAVE_RANDOM_H # include #endif ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt - initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps + initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray realpath rpmatch secure_getenv setenv setstate setstate_r srandom - srandom_r strtod strtoll strtoull unlockpt unsetenv]) + srandom_r strtod strtold strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], @@ -65,6 +68,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) + GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD]) GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) @@ -78,7 +82,9 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) + HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) + HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) @@ -97,8 +103,10 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) + HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) + HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) @@ -107,6 +115,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) + REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) @@ -114,11 +123,14 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) + REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) + REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) + REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) diff --git a/m4/string_h.m4 b/m4/string_h.m4 index ac6311f..0c0e3a7 100644 --- a/m4/string_h.m4 +++ b/m4/string_h.m4 @@ -1,11 +1,11 @@ # Configure a GNU-like replacement for . -# Copyright (C) 2007-2017 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 21 +# serial 22 # Written by Paul Eggert. @@ -107,16 +107,16 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) - REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) - REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) - REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) - REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) - REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) + REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) - REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) + REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) + REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) + REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) diff --git a/m4/strstr.m4 b/m4/strstr.m4 deleted file mode 100644 index c6b7d64..0000000 --- a/m4/strstr.m4 +++ /dev/null @@ -1,139 +0,0 @@ -# strstr.m4 serial 19 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Check that strstr works. -AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], -[ - AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MEMCHR]) - if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then - REPLACE_STRSTR=1 - else - dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. - AC_CACHE_CHECK([whether strstr works], - [gl_cv_func_strstr_works_always], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -#include /* for strstr */ -#define P "_EF_BF_BD" -#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P -#define NEEDLE P P P P P -]], [[return !!strstr (HAYSTACK, NEEDLE); - ]])], - [gl_cv_func_strstr_works_always=yes], - [gl_cv_func_strstr_works_always=no], - [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not - dnl affected, since it uses different source code for strstr than - dnl glibc. - dnl Assume that it works on all other platforms, even if it is not - dnl linear. - AC_EGREP_CPP([Lucky user], - [ -#ifdef __GNU_LIBRARY__ - #include - #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ - || defined __UCLIBC__ - Lucky user - #endif -#elif defined __CYGWIN__ - #include - #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) - Lucky user - #endif -#else - Lucky user -#endif - ], - [gl_cv_func_strstr_works_always="guessing yes"], - [gl_cv_func_strstr_works_always="guessing no"]) - ]) - ]) - case "$gl_cv_func_strstr_works_always" in - *yes) ;; - *) - REPLACE_STRSTR=1 - ;; - esac - fi -]) # gl_FUNC_STRSTR_SIMPLE - -dnl Additionally, check that strstr is efficient. -AC_DEFUN([gl_FUNC_STRSTR], -[ - AC_REQUIRE([gl_FUNC_STRSTR_SIMPLE]) - if test $REPLACE_STRSTR = 0; then - AC_CACHE_CHECK([whether strstr works in linear time], - [gl_cv_func_strstr_linear], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -#ifdef __MVS__ -/* z/OS does not deliver signals while strstr() is running (thanks to - restrictions on its LE runtime), which prevents us from limiting the - running time of this test. */ -# error "This test does not work properly on z/OS" -#endif -#include /* for signal */ -#include /* for strstr */ -#include /* for malloc */ -#include /* for alarm */ -static void quit (int sig) { _exit (sig + 128); } -]], [[ - int result = 0; - size_t m = 1000000; - char *haystack = (char *) malloc (2 * m + 2); - char *needle = (char *) malloc (m + 2); - /* Failure to compile this test due to missing alarm is okay, - since all such platforms (mingw) also have quadratic strstr. */ - signal (SIGALRM, quit); - alarm (5); - /* Check for quadratic performance. */ - if (haystack && needle) - { - memset (haystack, 'A', 2 * m); - haystack[2 * m] = 'B'; - haystack[2 * m + 1] = 0; - memset (needle, 'A', m); - needle[m] = 'B'; - needle[m + 1] = 0; - if (!strstr (haystack, needle)) - result |= 1; - } - /* Free allocated memory, in case some sanitizer is watching. */ - free (haystack); - free (needle); - return result; - ]])], - [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no], - [dnl Only glibc > 2.12 on processors without SSE 4.2 instructions and - dnl cygwin > 1.7.7 are known to have a bug-free strstr that works in - dnl linear time. - AC_EGREP_CPP([Lucky user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ - && !(defined __i386__ || defined __x86_64__) \ - && !defined __UCLIBC__ - Lucky user - #endif -#endif -#ifdef __CYGWIN__ - #include - #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) - Lucky user - #endif -#endif - ], - [gl_cv_func_strstr_linear="guessing yes"], - [gl_cv_func_strstr_linear="guessing no"]) - ]) - ]) - case "$gl_cv_func_strstr_linear" in - *yes) ;; - *) - REPLACE_STRSTR=1 - ;; - esac - fi -]) # gl_FUNC_STRSTR diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4 index 3ecbe7c..d0a9020 100644 --- a/m4/sys_socket_h.m4 +++ b/m4/sys_socket_h.m4 @@ -1,5 +1,5 @@ -# sys_socket_h.m4 serial 23 -dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. +# sys_socket_h.m4 serial 24 +dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -104,17 +104,11 @@ AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 - HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 - if test $ac_cv_header_ws2tcpip_h = yes; then - HAVE_WS2TCPIP_H=1 - else - HAVE_WS2TCPIP_H=0 - fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) - AC_SUBST([HAVE_WS2TCPIP_H]) + gl_PREREQ_SYS_H_WS2TCPIP ]) # Common prerequisites of the replacement and of the @@ -142,6 +136,24 @@ AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], AC_SUBST([HAVE_WINSOCK2_H]) ]) +# Common prerequisites of the replacement and of the +# replacement. +# Sets and substitutes HAVE_WS2TCPIP_H. +AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], +[ + AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_WS2TCPIP_H=0 + else + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + AC_SUBST([HAVE_WS2TCPIP_H]) +]) + AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4 index 8934278..361ac3f 100644 --- a/m4/sys_stat_h.m4 +++ b/m4/sys_stat_h.m4 @@ -1,5 +1,5 @@ # sys_stat_h.m4 serial 31 -*- Autoconf -*- -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4 index 1c8c3cf..3d9233a 100644 --- a/m4/sys_time_h.m4 +++ b/m4/sys_time_h.m4 @@ -1,7 +1,7 @@ # Configure a replacement for . # serial 9 -# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. diff --git a/m4/sys_types_h.m4 b/m4/sys_types_h.m4 index ec0860b..be06559 100644 --- a/m4/sys_types_h.m4 +++ b/m4/sys_types_h.m4 @@ -1,5 +1,5 @@ -# sys_types_h.m4 serial 8 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +# sys_types_h.m4 serial 9 +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -35,12 +35,12 @@ AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], ]) # This works around a buggy version in autoconf <= 2.69. -# See +# See m4_version_prereq([2.70], [], [ # This is taken from the following Autoconf patch: -# http://git.sv.gnu.org/cgit/autoconf.git/commit/?id=e17a30e98 +# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=e17a30e987d7ee695fb4294a82d987ec3dc9b974 m4_undefine([AC_HEADER_MAJOR]) AC_DEFUN([AC_HEADER_MAJOR], diff --git a/m4/threadlib.m4 b/m4/threadlib.m4 new file mode 100644 index 0000000..045d9da --- /dev/null +++ b/m4/threadlib.m4 @@ -0,0 +1,359 @@ +# threadlib.m4 serial 20 +dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ([2.60]) + +dnl gl_THREADLIB +dnl ------------ +dnl Tests for a multithreading library to be used. +dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO +dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the +dnl default is 'no', otherwise it is system dependent. In both cases, the user +dnl can change the choice through the options --enable-threads=choice or +dnl --disable-threads. +dnl Defines at most one of the macros USE_POSIX_THREADS, USE_WINDOWS_THREADS. +dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use +dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with +dnl libtool). +dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for +dnl programs that really need multithread functionality. The difference +dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak +dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. +dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for +dnl multithread-safe programs. +dnl Since support for GNU pth was removed, $LTLIBTHREAD and $LIBTHREAD have the +dnl same value, and similarly $LTLIBMULTITHREAD and $LIBMULTITHREAD have the +dnl same value. Only system libraries are needed. + +AC_DEFUN([gl_THREADLIB_EARLY], +[ + AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) +]) + +dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. + +AC_DEFUN([gl_THREADLIB_EARLY_BODY], +[ + dnl Ordering constraints: This macro modifies CPPFLAGS in a way that + dnl influences the result of the autoconf tests that test for *_unlocked + dnl declarations, on AIX 5 at least. Therefore it must come early. + AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl + AC_BEFORE([$0], [gl_ARGP])dnl + + AC_REQUIRE([AC_CANONICAL_HOST]) + dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + dnl Check for multithreading. + m4_ifdef([gl_THREADLIB_DEFAULT_NO], + [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], + [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) + m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=]) + AC_ARG_ENABLE([threads], +AC_HELP_STRING([--enable-threads={posix|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ +AC_HELP_STRING([--disable-threads], [build without multithread safety])]), + [gl_use_threads=$enableval], + [if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else +changequote(,)dnl + case "$host_os" in + dnl Disable multithreading by default on OSF/1, because it interferes + dnl with fork()/exec(): When msgexec is linked with -lpthread, its + dnl child process gets an endless segmentation fault inside execvp(). + osf*) gl_use_threads=no ;; + dnl Disable multithreading by default on Cygwin 1.5.x, because it has + dnl bugs that lead to endless loops or crashes. See + dnl . + cygwin*) + case `uname -r` in + 1.[0-5].*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ;; + dnl Obey gl_AVOID_WINPTHREAD on mingw. + mingw*) + case "$gl_use_winpthreads_default" in + yes) gl_use_threads=posix ;; + no) gl_use_threads=windows ;; + *) gl_use_threads=yes ;; + esac + ;; + *) gl_use_threads=yes ;; + esac +changequote([,])dnl + fi + ]) + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + fi +]) + +dnl The guts of gl_THREADLIB. Needs to be expanded only once. + +AC_DEFUN([gl_THREADLIB_BODY], +[ + AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) + gl_threads_api=none + LIBTHREAD= + LTLIBTHREAD= + LIBMULTITHREAD= + LTLIBMULTITHREAD= + if test "$gl_use_threads" != no; then + dnl Check whether the compiler and linker support weak declarations. + AC_CACHE_CHECK([whether imported symbols can be declared weak], + [gl_cv_have_weak], + [gl_cv_have_weak=no + dnl First, test whether the compiler accepts it syntactically. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[extern void xyzzy (); +#pragma weak xyzzy]], + [[xyzzy();]])], + [gl_cv_have_weak=maybe]) + if test $gl_cv_have_weak = maybe; then + dnl Second, test whether it actually works. On Cygwin 1.7.2, with + dnl gcc 4.3, symbols declared weak always evaluate to the address 0. + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +}]])], + [gl_cv_have_weak=yes], + [gl_cv_have_weak=no], + [dnl When cross-compiling, assume that only ELF platforms support + dnl weak symbols. + AC_EGREP_CPP([Extensible Linking Format], + [#ifdef __ELF__ + Extensible Linking Format + #endif + ], + [gl_cv_have_weak="guessing yes"], + [gl_cv_have_weak="guessing no"]) + ]) + fi + dnl But when linking statically, weak symbols don't work. + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + ]) + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + dnl If we use weak symbols to implement pthread_in_use / pth_in_use / + dnl thread_in_use, we also need to test whether the ISO C 11 thrd_create + dnl facility is in use. + AC_CHECK_HEADERS_ONCE([threads.h]) + : + fi + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. + AC_CHECK_HEADER([pthread.h], + [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + gl_have_pthread= + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + ]], + [[pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma);]])], + [gl_have_pthread=yes + LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread + LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread]) + LIBS=$save_LIBS + test -n "$gl_have_pthread" && break + done + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + AC_CHECK_LIB([pthread], [pthread_kill], + [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) + AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], + [Define if the pthread_in_use() detection is hard.]) + esac + ]) + elif test -z "$gl_have_pthread"; then + # Some library is needed. Try libpthread and libc_r. + AC_CHECK_LIB([pthread], [pthread_kill], + [gl_have_pthread=yes + LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) + if test -z "$gl_have_pthread"; then + # For FreeBSD 4. + AC_CHECK_LIB([c_r], [pthread_kill], + [gl_have_pthread=yes + LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r + LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) + fi + fi + if test -n "$gl_have_pthread"; then + gl_threads_api=posix + AC_DEFINE([USE_POSIX_THREADS], [1], + [Define if the POSIX multithreading library can be used.]) + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], + [Define if references to the POSIX multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi + fi + fi + fi + if test -z "$gl_have_pthread"; then + case "$gl_use_threads" in + yes | windows | win32) # The 'win32' is for backward compatibility. + if { case "$host_os" in + mingw*) true;; + *) false;; + esac + }; then + gl_threads_api=windows + AC_DEFINE([USE_WINDOWS_THREADS], [1], + [Define if the native Windows multithreading API can be used.]) + fi + ;; + esac + fi + fi + AC_MSG_CHECKING([for multithread API to use]) + AC_MSG_RESULT([$gl_threads_api]) + AC_SUBST([LIBTHREAD]) + AC_SUBST([LTLIBTHREAD]) + AC_SUBST([LIBMULTITHREAD]) + AC_SUBST([LTLIBMULTITHREAD]) +]) + +AC_DEFUN([gl_THREADLIB], +[ + AC_REQUIRE([gl_THREADLIB_EARLY]) + AC_REQUIRE([gl_THREADLIB_BODY]) +]) + + +dnl gl_DISABLE_THREADS +dnl ------------------ +dnl Sets the gl_THREADLIB default so that threads are not used by default. +dnl The user can still override it at installation time, by using the +dnl configure option '--enable-threads'. + +AC_DEFUN([gl_DISABLE_THREADS], [ + m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) +]) + + +dnl gl_AVOID_WINPTHREAD +dnl ------------------- +dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the +dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided. +dnl The user can still override it at installation time, by using the +dnl configure option '--enable-threads'. + +AC_DEFUN([gl_AVOID_WINPTHREAD], [ + m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no]) +]) + + +dnl Survey of platforms: +dnl +dnl Platform Available Compiler Supports test-lock +dnl flavours option weak result +dnl --------------- --------- --------- -------- --------- +dnl Linux 2.4/glibc posix -lpthread Y OK +dnl +dnl GNU Hurd/glibc posix +dnl +dnl Ubuntu 14.04 posix -pthread Y OK +dnl +dnl FreeBSD 5.3 posix -lc_r Y +dnl posix -lkse ? Y +dnl posix -lpthread ? Y +dnl posix -lthr Y +dnl +dnl FreeBSD 5.2 posix -lc_r Y +dnl posix -lkse Y +dnl posix -lthr Y +dnl +dnl FreeBSD 4.0,4.10 posix -lc_r Y OK +dnl +dnl NetBSD 1.6 -- +dnl +dnl OpenBSD 3.4 posix -lpthread Y OK +dnl +dnl Mac OS X 10.[123] posix -lpthread Y OK +dnl +dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK +dnl +dnl HP-UX 11 posix -lpthread N (cc) OK +dnl Y (gcc) +dnl +dnl IRIX 6.5 posix -lpthread Y 0.5 +dnl +dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK +dnl +dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK +dnl -lpthread (gcc) Y +dnl +dnl Cygwin posix -lpthread Y OK +dnl +dnl Mingw windows N OK +dnl +dnl BeOS 5 -- +dnl +dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is +dnl turned off: +dnl OK if all three tests terminate OK, +dnl 0.5 if the first test terminates OK but the second one loops endlessly, +dnl 0.0 if the first test already loops endlessly. diff --git a/m4/time_h.m4 b/m4/time_h.m4 index 28e2209..f08f29b 100644 --- a/m4/time_h.m4 +++ b/m4/time_h.m4 @@ -1,6 +1,6 @@ # Configure a more-standard replacement for . -# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. # serial 11 diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4 index cc44677..18b7140 100644 --- a/m4/unistd_h.m4 +++ b/m4/unistd_h.m4 @@ -1,5 +1,5 @@ -# unistd_h.m4 serial 70 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +# unistd_h.m4 serial 76 +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -37,13 +37,13 @@ AC_DEFUN([gl_UNISTD_H], # include # include # include -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ # include # endif #endif - ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat - fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups - gethostname getlogin getlogin_r getpagesize + ]], [access chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir + fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize + getgroups gethostname getlogin getlogin_r getpagesize getpass getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat @@ -61,9 +61,11 @@ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ + GNULIB_ACCESS=0; AC_SUBST([GNULIB_ACCESS]) GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) + GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) @@ -83,6 +85,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) + GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) @@ -112,6 +115,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) + HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) @@ -126,6 +130,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) + HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) @@ -140,7 +145,6 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) - HAVE_TRUNCATE=1; AC_SUBST([HAVE_TRUNCATE]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) @@ -152,13 +156,16 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) + HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) + REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) + REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) @@ -167,6 +174,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) diff --git a/m4/warn-on-use.m4 b/m4/warn-on-use.m4 index 25ce737..7ebe2d3 100644 --- a/m4/warn-on-use.m4 +++ b/m4/warn-on-use.m4 @@ -1,11 +1,13 @@ -# warn-on-use.m4 serial 5 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. +# warn-on-use.m4 serial 6 +dnl Copyright (C) 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- +# If the module 'posixcheck' is in use: +# # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. @@ -23,25 +25,27 @@ dnl with or without modifications, as long as this notice is preserved. # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ - m4_foreach_w([gl_decl], [$2], - [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), - [Define to 1 if ]m4_defn([gl_decl])[ is declared even after - undefining macros.])])dnl + m4_ifdef([gl_POSIXCHECK], + [m4_foreach_w([gl_decl], [$2], + [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), + [Define to 1 if ]m4_defn([gl_decl])[ is declared even after + undefining macros.])])dnl dnl FIXME: gl_Symbol must be used unquoted until we can assume dnl autoconf 2.64 or newer. - for gl_func in m4_flatten([$2]); do - AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl - AC_CACHE_CHECK([whether $gl_func is declared without a macro], - gl_Symbol, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], + for gl_func in m4_flatten([$2]); do + AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl + AC_CACHE_CHECK([whether $gl_func is declared without a macro], + gl_Symbol, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], - [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) - AS_VAR_IF(gl_Symbol, [yes], - [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) - dnl shortcut - if the raw declaration exists, then set a cache - dnl variable to allow skipping any later AC_CHECK_DECL efforts - eval ac_cv_have_decl_$gl_func=yes]) - AS_VAR_POPDEF([gl_Symbol])dnl - done + [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) + AS_VAR_IF(gl_Symbol, [yes], + [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) + dnl shortcut - if the raw declaration exists, then set a cache + dnl variable to allow skipping any later AC_CHECK_DECL efforts + eval ac_cv_have_decl_$gl_func=yes]) + AS_VAR_POPDEF([gl_Symbol])dnl + done + ]) ]) diff --git a/m4/wchar_h.m4 b/m4/wchar_h.m4 index 1a2734c..cd20e7a 100644 --- a/m4/wchar_h.m4 +++ b/m4/wchar_h.m4 @@ -1,13 +1,13 @@ dnl A placeholder for ISO C99 , for platforms that have issues. -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. -# wchar_h.m4 serial 42 +# wchar_h.m4 serial 43 AC_DEFUN([gl_WCHAR_H], [ @@ -63,8 +63,8 @@ dnl Check whether is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether suffers due to the transition from '__inline' to - dnl 'gnu_inline'. See - dnl and . In summary, + dnl 'gnu_inline'. See + dnl and . In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken . AC_CACHE_CHECK([whether uses 'inline' correctly], @@ -90,7 +90,8 @@ int main () { return zero(); } dnl that the object file has the latter name from the start. save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if AC_TRY_EVAL([ac_compile]); then + if echo '#include "conftest.c"' >conftest1.c && + AC_TRY_EVAL([ac_compile]); then AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before @@ -105,7 +106,8 @@ int zero (void) { return 0; } ]])]) dnl See note above about renaming object files. ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if AC_TRY_EVAL([ac_compile]); then + if echo '#include "conftest.c"' >conftest2.c && + AC_TRY_EVAL([ac_compile]); then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else @@ -114,7 +116,7 @@ int zero (void) { return 0; } fi fi ac_compile="$save_ac_compile" - rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). @@ -122,7 +124,7 @@ This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of - , or + , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 index 11783d2..5db5815 100644 --- a/m4/wchar_t.m4 +++ b/m4/wchar_t.m4 @@ -1,5 +1,5 @@ # wchar_t.m4 serial 4 (gettext-0.18.2) -dnl Copyright (C) 2002-2003, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/wcrtomb.m4 b/m4/wcrtomb.m4 index fcc3f8c..fec22f3 100644 --- a/m4/wcrtomb.m4 +++ b/m4/wcrtomb.m4 @@ -1,5 +1,5 @@ -# wcrtomb.m4 serial 12 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +# wcrtomb.m4 serial 14 +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -33,15 +33,56 @@ AC_DEFUN([gl_FUNC_WCRTOMB], else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 - else - dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes - dnl returns 0 instead of 1. + fi + if test $REPLACE_WCRTOMB = 0; then + dnl On Android 4.3, wcrtomb produces wrong characters in the C locale. + dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL) + dnl sometimes returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether wcrtomb works in the C locale], + [gl_cv_func_wcrtomb_works], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +int main () +{ + mbstate_t state; + char out[64]; + int count; + memset (&state, 0, sizeof (state)); + out[0] = 'x'; + count = wcrtomb (out, L'a', &state); + return !(count == 1 && out[0] == 'a'); +}]])], + [gl_cv_func_wcrtomb_works=yes], + [gl_cv_func_wcrtomb_works=no], + [case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_works="guessing yes";; + esac + ]) + ]) + case "$gl_cv_func_wcrtomb_works" in + *yes) ;; + *) REPLACE_WCRTOMB=1 ;; + esac + fi + if test $REPLACE_WCRTOMB = 0; then AC_CACHE_CHECK([whether wcrtomb return value is correct], [gl_cv_func_wcrtomb_retval], [ diff --git a/m4/wcsdup.m4 b/m4/wcsdup.m4 index 2a6d227..7a0588c 100644 --- a/m4/wcsdup.m4 +++ b/m4/wcsdup.m4 @@ -1,5 +1,5 @@ # wcsdup.m4 serial 2 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/wctob.m4 b/m4/wctob.m4 index 9de4960..a906828 100644 --- a/m4/wctob.m4 +++ b/m4/wctob.m4 @@ -1,5 +1,5 @@ -# wctob.m4 serial 11 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +# wctob.m4 serial 12 +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -17,7 +17,7 @@ AC_DEFUN([gl_FUNC_WCTOB], dnl Solaris 9 has the wctob() function but it does not work. dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned - dnl registers, see . + dnl registers, see . AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles @@ -74,6 +74,7 @@ int main () AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include +#include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . diff --git a/m4/wctomb.m4 b/m4/wctomb.m4 index dc1860f..79d29f1 100644 --- a/m4/wctomb.m4 +++ b/m4/wctomb.m4 @@ -1,5 +1,5 @@ # wctomb.m4 serial 2 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/wctype_h.m4 b/m4/wctype_h.m4 index 596f26b..6903d75 100644 --- a/m4/wctype_h.m4 +++ b/m4/wctype_h.m4 @@ -2,7 +2,7 @@ dnl A placeholder for ISO C99 , for platforms that lack it. -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 index d30b8bc..61e8a23 100644 --- a/m4/wint_t.m4 +++ b/m4/wint_t.m4 @@ -1,5 +1,5 @@ # wint_t.m4 serial 7 -dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/wmemcpy.m4 b/m4/wmemcpy.m4 index 44dbfc5..94cb025 100644 --- a/m4/wmemcpy.m4 +++ b/m4/wmemcpy.m4 @@ -1,5 +1,5 @@ # wmemcpy.m4 serial 3 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/xopen-source.m4 b/m4/xopen-source.m4 new file mode 100644 index 0000000..1bd5641 --- /dev/null +++ b/m4/xopen-source.m4 @@ -0,0 +1,64 @@ +######################################################################### +# # +# Star Traders: A Game of Interstellar Trading # +# Copyright (C) 1990-2019, John Zaitseff # +# # +######################################################################### + +# Author: John Zaitseff +# $Id$ +# +# This file contains the macro USE_LATEST_XOPEN_SOURCE to determine the +# latest version of _XOPEN_SOURCE supported by the C library. It does +# this by compiling code with various values of that symbol. Once a +# particular value compiles without error, it redefines _XOPEN_SOURCE to +# that value using the auxiliary file ../lib/xopen-source.h and sets +# $x_cv_latest_xopen_source to one of the following values: +# +# 700 - _XOPEN_SOURCE=700 (for SUSv4 / XPG7) was accepted +# 600 - _XOPEN_SOURCE=600 (for SUSv3 / XPG6) was accepted +# unknown - _XOPEN_SOURCE set to above values failed to compile +# +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see https://www.gnu.org/licenses/. + +AC_DEFUN([_CHECK_XOPEN_SOURCE], [dnl + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + /* Test for $2 */ + @%:@define _XOPEN_SOURCE $1 + @%:@include + ])], [$3], [$4]) +])dnl + +AC_DEFUN([USE_LATEST_XOPEN_SOURCE], [dnl + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AH_BOTTOM([ +/* Redefine _XOPEN_SOURCE as required */ +@%:@include +]) + AC_CACHE_CHECK([the latest supported version of _XOPEN_SOURCE], + [x_cv_latest_xopen_source], [ + x_cv_latest_xopen_source=unknown + _CHECK_XOPEN_SOURCE([700], [SUSv4 / XPG7], [ + x_cv_latest_xopen_source=700 + ], [_CHECK_XOPEN_SOURCE([600], [SUSv3 / XPG6], [ + x_cv_latest_xopen_source=600 + ])]) + ]) + AS_IF([test "x$x_cv_latest_xopen_source" != xunknown], [dnl + AC_DEFINE_UNQUOTED([LATEST_XOPEN_SOURCE], + [$x_cv_latest_xopen_source], + [Define to the latest version of _XOPEN_SOURCE that is supported.]) + ]) +])dnl USE_LATEST_XOPEN_SOURCE diff --git a/po/LINGUAS b/po/LINGUAS index 59a1abb..90a2532 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -23,7 +23,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. en@quot diff --git a/po/Makevars b/po/Makevars index dd3d154..684799a 100644 --- a/po/Makevars +++ b/po/Makevars @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -23,7 +23,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. # The message domain is the same as the package name. diff --git a/po/POTFILES.in b/po/POTFILES.in index 7e0e677..5c6748f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -23,7 +23,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. # Data files from Star Traders @@ -42,3 +42,6 @@ src/utils.c # Source files from the Gnulib GNU Portability Library lib/getopt.c + +# Strings from obsolete versions of various libraries +lib/obsolete-strings.c diff --git a/po/README b/po/README index e56aad5..f961f35 100644 --- a/po/README +++ b/po/README @@ -1,9 +1,10 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, po, contains translations for text strings used in Star -Traders. The GNU Gettext project is used for this purpose. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `po`, contains translations for text strings used in Star +Traders. The `GNU Gettext project`__ is used for this purpose. + +__ https://www.gnu.org/software/gettext/ diff --git a/po/da.gmo b/po/da.gmo index 48477ef..5b3af1c 100644 Binary files a/po/da.gmo and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index 8543660..a403baa 100644 --- a/po/da.po +++ b/po/da.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Danish Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:34+1100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -29,7 +29,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -152,9 +152,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -163,10 +163,10 @@ msgstr "" "Rapporter fejl til %s <%s>.\n" "Rapporter oversættelsefejl til Dansk-gruppen .\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -705,7 +705,7 @@ msgstr "Gammel aktie: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Ny aktie: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1583,7 +1583,7 @@ msgstr "Side %1$d af %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Tryk for at fortsætte ] " @@ -1611,17 +1611,17 @@ msgstr "%s: streng har ikke korrekt format: »%s«" msgid "%s: character has illegal width: '%lc'" msgstr "%s: tegn har ugyldig bredde: »%lc«" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminalstørrelse er for lille (%d x %d krævet)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: »%s«" @@ -1631,12 +1631,12 @@ msgstr "mkchstr: »%s«" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: ugyldigt tegn i streng: »%ls«" @@ -1645,12 +1645,12 @@ msgstr "gettxline: ugyldigt tegn i streng: »%ls«" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Jj" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1658,76 +1658,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Ja" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Nej" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "ikke nok hukommelse" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: »%s«" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: »%lc«" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: tilvalget »%s%s« er tvetydigt\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: tilvalget »%s%s« er tvetydigt; muligheder:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: tilvalget blev ikke genkendt »%s%s«\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: tilvalget »%s%s« tillader ikke et argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: tilvalget »%s%s« kræver et argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ugyldigt tilvalg -- »%c«\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: tilvalget kræver et argument -- »%c«\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: tilvalget »%s%s« er tvetydigt\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: tilvalget »%s%s« er tvetydigt; muligheder:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: tilvalget blev ikke genkendt »%s%s«\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: tilvalget »%s%s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: tilvalget »%s%s« kræver et argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: ugyldigt tilvalg -- »%c«\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: tilvalget kræver et argument -- »%c«\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: tilvalget »%s« er tvetydigt; muligheder:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: tilvalget »%s« er tvetydigt; muligheder:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: tilvalget »%s« er tvetydigt\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: tilvalget »%s« er tvetydigt\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: tilvalget »--%s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: tilvalget »--%s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: tilvalget »%c%s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: tilvalget »%c%s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: tilvalget »--%s« kræver et argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: tilvalget »--%s« kræver et argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: tilvalget blev ikke genkendt »--%s«\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: tilvalget blev ikke genkendt »--%s«\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: tilvalget blev ikke genkendt »%c%s«\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: tilvalget blev ikke genkendt »%c%s«\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: tilvalget »-W %s« er tvetydigt\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: tilvalget »-W %s« er tvetydigt\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: tilvalget »-W %s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: tilvalget »-W %s« tillader ikke et argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: tilvalget »-W %s« kræver et argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: tilvalget »-W %s« kræver et argument\n" diff --git a/po/de.gmo b/po/de.gmo index 9a7f280..11a1072 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 0ac8760..cf34687 100644 --- a/po/de.po +++ b/po/de.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * German Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:35+1100\n" "Last-Translator: Philipp Thomas \n" "Language-Team: German \n" "Language: de\n" @@ -29,7 +29,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -154,9 +154,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -166,10 +166,10 @@ msgstr "" "Fehler in der Übersetzung berichten Sie bitte an\n" ".\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -712,7 +712,7 @@ msgstr "Alte Aktien: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Neue Aktien: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1585,7 +1585,7 @@ msgstr "Seite %1$d von %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ drücken um fortzufahren ] " @@ -1612,17 +1612,17 @@ msgstr "%s: Die Zeichenkette hat ein falsches Format: „%s“" msgid "%s: character has illegal width: '%lc'" msgstr "%s: Das Zeichen hat eine unzulässige Breite: „%lc“" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "Das Terminal ist zu klein (Mindestgröße ist %d x %d)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NULL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: „%s“" @@ -1632,12 +1632,12 @@ msgstr "mkchstr: „%s“" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: unzulässiges Zeichen in der Zeichenkette „%ls“" @@ -1646,12 +1646,12 @@ msgstr "gettxline: unzulässiges Zeichen in der Zeichenkette „%ls“" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Jj" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1659,76 +1659,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Ja" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Nein" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "Kein frier Speicer mehr vorhanden" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s“" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc“" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: Option „%s%s“ ist mehrdeutig\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: Option „%s%s“ ist mehrdeutig; möglich wären:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unbekannte Option „%s%s“\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: Option „%s%s“ akzeptiert keine Argumente\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: Option „%s%s“ erfordert ein Argumente\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ungültige Option -- „%c“\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: die Option erfordert ein Argument -- „%c“\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: Option „%s%s“ ist mehrdeutig\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: Option „%s%s“ ist mehrdeutig; möglich wären:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unbekannte Option „%s%s“\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: Option „%s%s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: Option „%s%s“ erfordert ein Argumente\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: ungültige Option -- „%c“\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: die Option erfordert ein Argument -- „%c“\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: Option „%s“ ist mehrdeutig; möglich wären:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: Option „%s“ ist mehrdeutig; möglich wären:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: Option „%s“ ist mehrdeutig\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: Option „%s“ ist mehrdeutig\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: Option „--%s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: Option „--%s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: Option „%c%s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: Option „%c%s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: Option „--%s“ erfordert ein Argumente\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: Option „--%s“ erfordert ein Argumente\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unbekannte Option „--%s“\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unbekannte Option „--%s“\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unbekannte Option „%c%s“\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unbekannte Option „%c%s“\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: Option „-W %s“ ist mehrdeutig\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: Option „-W %s“ ist mehrdeutig\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: Option „-W %s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: Option „-W %s“ akzeptiert keine Argumente\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: Option „-W %s“ erfordert ein Argumente\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: Option „-W %s“ erfordert ein Argumente\n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo index eee9a80..e35e8af 100644 Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ diff --git a/po/en@quot.po b/po/en@quot.po index 183c28d..92e06fa 100644 --- a/po/en@quot.po +++ b/po/en@quot.po @@ -1,7 +1,7 @@ # English translations for trader package. -# Copyright (C) 2017 John Zaitseff +# Copyright (C) 2019 John Zaitseff # This file is distributed under the same license as the trader package. -# Automatically generated, 2017. +# Automatically generated, 2019. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation @@ -27,10 +27,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:17+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-11-13 08:14+1100\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@quot\n" @@ -43,7 +43,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -165,19 +165,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Report bugs to %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -713,8 +713,8 @@ msgstr "Old stock: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " -msgstr "New Stock: " +msgid "New stock: " +msgstr "New stock: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to #. each player after two companies merge. %ls is the currency @@ -1584,7 +1584,7 @@ msgstr "Page %1$d of %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1611,17 +1611,17 @@ msgstr "%s: string has incorrect format: ‘%s’" msgid "%s: character has illegal width: '%lc'" msgstr "%s: character has illegal width: ‘%lc’" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ‘%s’" @@ -1631,12 +1631,12 @@ msgstr "mkchstr: ‘%s’" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: illegal character in string: ‘%ls’" @@ -1645,12 +1645,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Yy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1658,76 +1658,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Yes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: option ‘%s%s’ is ambiguous\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unrecognized option ‘%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: option ‘%s%s’ doesn't allow an argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: option ‘%s%s’ requires an argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: invalid option -- ‘%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: option requires an argument -- ‘%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: option ‘%s%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unrecognized option ‘%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: option ‘%s%s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: option ‘%s%s’ requires an argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: invalid option -- ‘%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: option requires an argument -- ‘%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn't allow an argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" diff --git a/po/en_AU.gmo b/po/en_AU.gmo index 9cb3afd..6c47a0b 100644 Binary files a/po/en_AU.gmo and b/po/en_AU.gmo differ diff --git a/po/en_AU.po b/po/en_AU.po index 3c34a15..accb2ca 100644 --- a/po/en_AU.po +++ b/po/en_AU.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (Australian) Translations for Star Traders * -# * Copyright (C) 1990-2017, John Zaitseff * +# * Copyright (C) 1990-2019, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2017. +# John Zaitseff , 2011-2019. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:35+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Australian) <(nothing)>\n" "Language: en_AU\n" @@ -28,7 +28,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -150,19 +150,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Report bugs to %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -698,8 +698,8 @@ msgstr "Old stock: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " -msgstr "New Stock: " +msgid "New stock: " +msgstr "New stock: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to #. each player after two companies merge. %ls is the currency @@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’" msgid "%s: character has illegal width: '%lc'" msgstr "%s: character has illegal width: ‘%lc’" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ‘%s’" @@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: illegal character in string: ‘%ls’" @@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Yy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1643,76 +1643,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Yes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: option ‘%s%s’ is ambiguous\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unrecognised option ‘%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: option ‘%s%s’ requires an argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: invalid option -- ‘%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: option requires an argument -- ‘%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: option ‘%s%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unrecognised option ‘%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: option ‘%s%s’ requires an argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: invalid option -- ‘%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: option requires an argument -- ‘%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognised option ‘--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unrecognised option ‘--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognised option ‘%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unrecognised option ‘%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" diff --git a/po/en_CA.gmo b/po/en_CA.gmo index 88961c0..41c794a 100644 Binary files a/po/en_CA.gmo and b/po/en_CA.gmo differ diff --git a/po/en_CA.po b/po/en_CA.po index f194096..204d1f3 100644 --- a/po/en_CA.po +++ b/po/en_CA.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (Canadian) Translations for Star Traders * -# * Copyright (C) 1990-2017, John Zaitseff * +# * Copyright (C) 1990-2019, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2017. +# John Zaitseff , 2011-2019. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:35+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (Canadian) <(nothing)>\n" "Language: en_CA\n" @@ -28,7 +28,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -150,19 +150,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Report bugs to %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -698,8 +698,8 @@ msgstr "Old stock: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " -msgstr "New Stock: " +msgid "New stock: " +msgstr "New stock: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to #. each player after two companies merge. %ls is the currency @@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’" msgid "%s: character has illegal width: '%lc'" msgstr "%s: character has illegal width: ‘%lc’" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ‘%s’" @@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: illegal character in string: ‘%ls’" @@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Yy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1643,76 +1643,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Yes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: option ‘%s%s’ is ambiguous\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unrecognized option ‘%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: option ‘%s%s’ requires an argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: invalid option -- ‘%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: option requires an argument -- ‘%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: option ‘%s%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unrecognized option ‘%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: option ‘%s%s’ requires an argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: invalid option -- ‘%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: option requires an argument -- ‘%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" diff --git a/po/en_GB.gmo b/po/en_GB.gmo index c76c16f..9f47922 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po index e1b754d..6bd38f9 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (British) Translations for Star Traders * -# * Copyright (C) 1990-2017, John Zaitseff * +# * Copyright (C) 1990-2019, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2017. +# John Zaitseff , 2011-2019. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:35+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (British) <(nothing)>\n" "Language: en_GB\n" @@ -28,7 +28,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -150,19 +150,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Report bugs to %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -698,8 +698,8 @@ msgstr "Old stock: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " -msgstr "New Stock: " +msgid "New stock: " +msgstr "New stock: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to #. each player after two companies merge. %ls is the currency @@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’" msgid "%s: character has illegal width: '%lc'" msgstr "%s: character has illegal width: ‘%lc’" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ‘%s’" @@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: illegal character in string: ‘%ls’" @@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Yy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1643,76 +1643,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Yes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: option ‘%s%s’ is ambiguous\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unrecognised option ‘%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: option ‘%s%s’ requires an argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: invalid option -- ‘%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: option requires an argument -- ‘%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: option ‘%s%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unrecognised option ‘%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: option ‘%s%s’ requires an argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: invalid option -- ‘%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: option requires an argument -- ‘%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognised option ‘--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unrecognised option ‘--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognised option ‘%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unrecognised option ‘%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" diff --git a/po/en_US.gmo b/po/en_US.gmo index 1543c28..c6f3c2a 100644 Binary files a/po/en_US.gmo and b/po/en_US.gmo differ diff --git a/po/en_US.po b/po/en_US.po index 8ca6a1e..ad2c435 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -1,21 +1,21 @@ # ************************************************************************* # * * # * English (US) Translations for Star Traders * -# * Copyright (C) 1990-2017, John Zaitseff * +# * Copyright (C) 1990-2019, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2017. +# John Zaitseff , 2011-2019. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:35+1100\n" "Last-Translator: John Zaitseff \n" "Language-Team: English (US) <(nothing)>\n" "Language: en_US\n" @@ -28,7 +28,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -150,19 +150,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Report bugs to %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -698,8 +698,8 @@ msgstr "Old stock: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " -msgstr "New Stock: " +msgid "New stock: " +msgstr "New stock: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to #. each player after two companies merge. %ls is the currency @@ -1569,7 +1569,7 @@ msgstr "Page %1$d of %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Press to continue ] " @@ -1596,17 +1596,17 @@ msgstr "%s: string has incorrect format: ‘%s’" msgid "%s: character has illegal width: '%lc'" msgstr "%s: character has illegal width: ‘%lc’" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal size is too small (%d x %d required)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ‘%s’" @@ -1616,12 +1616,12 @@ msgstr "mkchstr: ‘%s’" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: illegal character in string: ‘%ls’" @@ -1630,12 +1630,12 @@ msgstr "gettxline: illegal character in string: ‘%ls’" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Yy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1643,76 +1643,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Yes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "No" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "out of memory" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ‘%s’" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ‘%lc’" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: option ‘%s%s’ is ambiguous\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: unrecognized option ‘%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: option ‘%s%s’ requires an argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: invalid option -- ‘%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: option requires an argument -- ‘%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: option ‘%s%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: unrecognized option ‘%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: option ‘%s%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: option ‘%s%s’ requires an argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: invalid option -- ‘%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: option requires an argument -- ‘%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: option ‘%s’ is ambiguous; possibilities:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: option ‘--%s’ requires an argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn’t allow an argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: option ‘-W %s’ requires an argument\n" diff --git a/po/eo.gmo b/po/eo.gmo index 520a5c7..77fa4a9 100644 Binary files a/po/eo.gmo and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po index 2931cc1..f9f2221 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,35 +1,36 @@ # ************************************************************************* # * * # * Esperanto Translations for Star Traders * -# * Copyright (C) 2013-17, John Zaitseff * -# * Copyright (C) 2013-16, Free Software Foundation, Inc. * +# * Copyright (C) 2013-19, John Zaitseff * +# * Copyright (C) 2013-18, Free Software Foundation, Inc. * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# Felipe Castro , 2013, 2016. +# Felipe Castro , 2013, 2016, 2018. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:18+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:36+1100\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANSLATORS: The name of the game. You may choose to translate it into #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -42,7 +43,7 @@ msgstr "Ludi Star Traders, simpla ludo pri interstelara komerco" #. add your own keywords! #: data/trader.desktop.in:27 msgid "game;interstellar;trading;strategy;" -msgstr "" +msgstr "ludo;kosmo;negoco;strategio;" #. TRANSLATORS: This string is the name of the icon to use. The Desktop #. Entry Specification states it is translatable, but unless you provide a @@ -152,9 +153,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -163,10 +164,10 @@ msgstr "" "Raportu program-misojn al: %s <%s>.\n" "Raportu traduk-misojn al: .\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -704,7 +705,7 @@ msgstr "Malnova akcio: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Nova akcio: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1575,7 +1576,7 @@ msgstr "Paĝo %1$d el %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Premu por daŭrigi ] " @@ -1602,17 +1603,17 @@ msgstr "%s: ĉeno havas malĝustan formon: '%s'" msgid "%s: character has illegal width: '%lc'" msgstr "%s: signo havas malpermesatan larĝon: '%lc'" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal-grando tro malgrandas (necesas %d x %d)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: '%s'" @@ -1622,12 +1623,12 @@ msgstr "mkchstr: '%s'" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: malpermesata signo en ĉeno: '%ls'" @@ -1636,12 +1637,12 @@ msgstr "gettxline: malpermesata signo en ĉeno: '%ls'" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "JjYy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1649,76 +1650,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Jes" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Ne" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "memoro plenpleniĝas" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: '%s'" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: '%lc'" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: la modifilo '%s%s' estas plursenca\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: nerekonata modifilo '%s%s'\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: la modifilo '%s%s' postulas argumenton\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: malvalida modifilo -- '%c'\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: la modifilo postulas argumenton -- '%c'\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: la modifilo '%s%s' estas plursenca\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: nerekonata modifilo '%s%s'\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: la modifilo '%s%s' postulas argumenton\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: malvalida modifilo -- '%c'\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: la modifilo postulas argumenton -- '%c'\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: la modifilo '%s' estas plursenca\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: la modifilo '%s' estas plursenca\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: la modifilo '--%s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: la modifilo '--%s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: la modifilo '--%s' postulas argumenton\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: la modifilo '--%s' postulas argumenton\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: nerekonata modifilo '--%s'\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: nerekonata modifilo '--%s'\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: nerekonata modifilo '%c%s'\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: nerekonata modifilo '%c%s'\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: la modifilo '-W %s' estas plursenca\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: la modifilo '-W %s' estas plursenca\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: la modifilo '-W %s' postulas argumenton\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: la modifilo '-W %s' postulas argumenton\n" diff --git a/po/fi.gmo b/po/fi.gmo index 912d920..2e39d7a 100644 Binary files a/po/fi.gmo and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index cf58701..dc6450f 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Finnish Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * Copyright (C) 2012, Free Software Foundation, Inc. * # * * # ************************************************************************* @@ -13,23 +13,24 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:37+1100\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANSLATORS: The name of the game. You may choose to translate it into #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Tähtikauppiaat" @@ -151,9 +152,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -163,10 +164,10 @@ msgstr "" "<%s>. Ilmoita käännösvirheistä osoitteeseen\n" ".\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -708,7 +709,7 @@ msgstr "Vanha osakekanta: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Uusi osakekanta: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1579,7 +1580,7 @@ msgstr "Sivu %1$d / %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Paina jatkaaksesi ] " @@ -1606,17 +1607,17 @@ msgstr "%s: merkkijonolla on väärä muoto: ”%s”" msgid "%s: character has illegal width: '%lc'" msgstr "%s: merkillä on väärä leveys: ”%lc”" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "pääteikkunakoko on liian pieni (%d x %d vaadittu)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ”%s”" @@ -1626,12 +1627,12 @@ msgstr "mkchstr: ”%s”" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: virheellinen merkki merkkijonossa: ”%ls”" @@ -1640,12 +1641,12 @@ msgstr "gettxline: virheellinen merkki merkkijonossa: ”%ls”" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Kk" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Ee" @@ -1653,76 +1654,214 @@ msgstr "Ee" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Kyllä" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Ei" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "muisti loppui" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ”%s”" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ”%lc”" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen; mahdollisuudet:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: tunnistamaton valitsin ’%s%s’\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: valitsin ’%s%s’ ei salli argumenttia\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: valitsin ’%s%s’ vaatii argumentin\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: virheellinen valitsin -- ’%c’\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: valitsin vaatii argumentin -- ’%c’\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: valitsin ’%s%s’ ei ole yksiselitteinen; mahdollisuudet:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: tunnistamaton valitsin ’%s%s’\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: valitsin ’%s%s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: valitsin ’%s%s’ vaatii argumentin\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: virheellinen valitsin -- ’%c’\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: valitsin vaatii argumentin -- ’%c’\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: valitsin ’--%s’ vaatii argumentin\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: valitsin ’--%s’ vaatii argumentin\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: tunnistamaton valitsin ’--%s’\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: tunnistamaton valitsin ’--%s’\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: tunnistamaton valitsin ’%c%s’\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: tunnistamaton valitsin ’%c%s’\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n" diff --git a/po/fr.gmo b/po/fr.gmo index 164c9b2..bf75644 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 5db36c3..6e3641c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * French Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * Copyright (C) 2012-17, Free Software Foundation, Inc. * # * * # ************************************************************************* @@ -19,10 +19,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:37+1100\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -36,7 +36,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -160,9 +160,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -171,10 +171,10 @@ msgstr "" "Rapportez les bugs à %s <%s>.\n" "Rapportez les bugs de traduction à .\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -712,7 +712,7 @@ msgstr "Anciennes actions: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Nouvelles actions: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1595,7 +1595,7 @@ msgstr "Page %1$d sur %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Appuyez pour continuer ] " @@ -1622,17 +1622,17 @@ msgstr "%s: la chaîne a un format incorrect: « %s »" msgid "%s: character has illegal width: '%lc'" msgstr "%s: caractère avec une largeur illégale: « %lc »" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "la taille du terminal est trop petite (%d × %d requis)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: « %s »" @@ -1642,12 +1642,12 @@ msgstr "mkchstr: « %s »" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: caractère illégal dans la chaîne: « %ls »" @@ -1656,12 +1656,12 @@ msgstr "gettxline: caractère illégal dans la chaîne: « %ls »" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Oo" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1669,76 +1669,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Oui" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Non" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "pas assez de mémoire" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: « %s »" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: « %lc »" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: l'option « %s%s » est ambiguë\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: l'option « %s%s » est ambiguë; les possibilités sont:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: option « %s%s » non reconnue\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: l'option « %s%s » n'accepte pas d'argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: l'option « %s%s » exige un argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: option invalide -- « %c »\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: l'option exige un argument -- « %c »\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: l'option « %s%s » est ambiguë\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: l'option « %s%s » est ambiguë; les possibilités sont:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: option « %s%s » non reconnue\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: l'option « %s%s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: l'option « %s%s » exige un argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: option invalide -- « %c »\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: l'option exige un argument -- « %c »\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: l'option « %s » est ambiguë; les possibilités sont:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: l'option « %s » est ambiguë; les possibilités sont:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: l'option « %s » est ambiguë\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: l'option « %s » est ambiguë\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: l'option « --%s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: l'option « --%s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: l'option « %c%s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: l'option « %c%s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: l'option « --%s » exige un argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: l'option « --%s » exige un argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: option « --%s » non reconnue\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: option « --%s » non reconnue\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: option « %c%s » non reconnue\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: option « %c%s » non reconnue\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: l'option « -W %s » est ambiguë\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: l'option « -W %s » est ambiguë\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: l'option « -W %s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: l'option « -W %s » n'accepte pas d'argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: l'option « -W %s » exige un argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: l'option « -W %s » exige un argument\n" diff --git a/po/hr.gmo b/po/hr.gmo index 8283708..973e4e6 100644 Binary files a/po/hr.gmo and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po index cfc5541..a3f9956 100644 --- a/po/hr.po +++ b/po/hr.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Croatian Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,23 +12,24 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:37+1100\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" #. TRANSLATORS: The name of the game. You may choose to translate it into #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -150,9 +151,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -161,10 +162,10 @@ msgstr "" "Prijavite greške: %s <%s>.\n" "Prijavite greške prijevoda: .\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -703,7 +704,7 @@ msgstr "Stare dionice: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Nove dionice: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1579,7 +1580,7 @@ msgstr "Stranica %1$d od %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Pritisnite za nastavak ] " @@ -1606,17 +1607,17 @@ msgstr "%s: niz znakova ima nepravilan oblik: „%s”" msgid "%s: character has illegal width: '%lc'" msgstr "%s: znak ima nedozvoljenu širinu: „%lc”" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "veličina terminala je premalena (potrebno je %d x %d)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: „%s”" @@ -1626,12 +1627,12 @@ msgstr "mkchstr: „%s”" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: nedozvoljen znak u nizu: „%ls”" @@ -1640,12 +1641,12 @@ msgstr "gettxline: nedozvoljen znak u nizu: „%ls”" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Dd" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1653,76 +1654,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Da" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Ne" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "nema dovoljno memorije" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s”" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc”" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: opcija „%s%s” je višeznačna\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: opcija „%s%s” je višeznačna; mogućnosti:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: neprepoznata opcija „%s%s”\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: opcija „%s%s” ne dozvoljava argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: opcija „%s%s” zahtijeva argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: neispravna opcija -- „%c”\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opcija zahtijeva argument -- „%c”\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: opcija „%s%s” je višeznačna\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: opcija „%s%s” je višeznačna; mogućnosti:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: neprepoznata opcija „%s%s”\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: opcija „%s%s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: opcija „%s%s” zahtijeva argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: neispravna opcija -- „%c”\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: opcija zahtijeva argument -- „%c”\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: opcija „%s” je višeznačna; mogućnosti:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: opcija „%s” je višeznačna; mogućnosti:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: opcija „%s” je višeznačna\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: opcija „%s” je višeznačna\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: opcija „--%s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: opcija „--%s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: opcija „%c%s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: opcija „%c%s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: opcija „--%s” zahtijeva argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: opcija „--%s” zahtijeva argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: neprepoznata opcija „--%s”\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: neprepoznata opcija „--%s”\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: neprepoznata opcija „%c%s”\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: neprepoznata opcija „%c%s”\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: opcija „-W %s” je višeznačna\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: opcija „-W %s” je višeznačna\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: opcija „-W %s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: opcija „-W %s” ne dozvoljava argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: opcija „-W %s” zahtijeva argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: opcija „-W %s” zahtijeva argument\n" diff --git a/po/hu.gmo b/po/hu.gmo index 7ec769c..1f51aaf 100644 Binary files a/po/hu.gmo and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index cf699a1..becc0f4 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Hungarian Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:37+1100\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -29,7 +29,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -153,19 +153,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "A hibák itt jelenthetők: %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -701,7 +701,7 @@ msgstr "Régi részvény: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Új részvény: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1574,7 +1574,7 @@ msgstr "%1$d / %2$d oldal" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Nyomja le a a folytatáshoz ] " @@ -1601,17 +1601,17 @@ msgstr "%s: a szövegnek helytelen formátuma van: „%s”" msgid "%s: character has illegal width: '%lc'" msgstr "%s: a karakternek szabálytalan szélessége van: „%lc”" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "a terminál mérete túl kicsi (%d x %d szükséges)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: „%s”" @@ -1621,12 +1621,12 @@ msgstr "mkchstr: „%s”" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: érvénytelen karakter a szövegben: „%ls”" @@ -1635,12 +1635,12 @@ msgstr "gettxline: érvénytelen karakter a szövegben: „%ls”" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Ii" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1648,76 +1648,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Igen" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Nem" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "nincs elég memória" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s”" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc”" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű; lehetőségek:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: ismeretlen „%s%s” kapcsoló\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: a(z) „%s%s” kapcsolóhoz egy argumentum szükséges\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: érvénytelen kapcsoló -- „%c”\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű; lehetőségek:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: ismeretlen „%s%s” kapcsoló\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: a(z) „%s%s” kapcsolóhoz egy argumentum szükséges\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: érvénytelen kapcsoló -- „%c”\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: ismeretlen „--%s” kapcsoló\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: ismeretlen „--%s” kapcsoló\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: ismeretlen „%c%s” kapcsoló\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: ismeretlen „%c%s” kapcsoló\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: a(z) „-W %s” kapcsoló nem egyértelmű\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: a(z) „-W %s” kapcsoló nem egyértelmű\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: a(z) „-W %s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: a(z) „-W %s” kapcsoló nem enged meg argumentumot\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: a(z) „-W %s” kapcsolóhoz egy argumentum szükséges\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: a(z) „-W %s” kapcsolóhoz egy argumentum szükséges\n" diff --git a/po/nb.gmo b/po/nb.gmo index 78f34c7..95a1d5e 100644 Binary files a/po/nb.gmo and b/po/nb.gmo differ diff --git a/po/nb.po b/po/nb.po index 36cb396..e78808a 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Norwegian Bokmål Translations for Star Traders * -# * Copyright (C) 2012-17, John Zaitseff * +# * Copyright (C) 2012-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:37+1100\n" "Last-Translator: Johnny A. Solbu \n" "Language-Team: Norwegian Bokmaal \n" "Language: nb\n" @@ -29,7 +29,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -152,9 +152,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -163,10 +163,10 @@ msgstr "" "Rapporter feil, på engelsk, til %s <%s>.\n" "Oversettelsesfeil kan rapporteres til .\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -704,7 +704,7 @@ msgstr "Gamle aksjer: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Nye aksjer: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1575,7 +1575,7 @@ msgstr "Side %1$d av %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Trykk for å fortsette ] " @@ -1602,17 +1602,17 @@ msgstr "%s: streng har feil format: «%s»" msgid "%s: character has illegal width: '%lc'" msgstr "%s: tegn har ugyldig bredde: «%lc»" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminal størrelsen er for liten (%d x %d kreves)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: «%s»" @@ -1622,12 +1622,12 @@ msgstr "mkchstr: «%s»" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: ugyldig tegn i streng: «%ls»" @@ -1636,12 +1636,12 @@ msgstr "gettxline: ugyldig tegn i streng: «%ls»" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Jj" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1649,76 +1649,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Ja" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Nei" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "ikke mer minne" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: «%s»" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: «%lc»" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: valget «%s%s» er tvetydig\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: valget «%s%s» er tvetydig; muligheter:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: ukjent valg «%s%s»\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: valget «%s%s» tillater ikke argumenter\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: valget «%s%s» krever et argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ugyldig valg -- «%c»\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: valget krever et argument -- «%c»\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: valget «%s%s» er tvetydig\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: valget «%s%s» er tvetydig; muligheter:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: ukjent valg «%s%s»\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: valget «%s%s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: valget «%s%s» krever et argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: ugyldig valg -- «%c»\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: valget krever et argument -- «%c»\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: valget «%s» er tvetydig; muligheter:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: valget «%s» er tvetydig; muligheter:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: valget «%s» er tvetydig\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: valget «%s» er tvetydig\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: valget «--%s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: valget «--%s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: valget «%c%s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: valget «%c%s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: valget «--%s» krever et argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: valget «--%s» krever et argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: ukjent valg «--%s»\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: ukjent valg «--%s»\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: ukjent valg «%c%s»\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: ukjent valg «%c%s»\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: valget «-W %s» er tvetydig\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: valget «-W %s» er tvetydig\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: valget «-W %s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: valget «-W %s» tillater ikke argumenter\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: valget «-W %s» krever et argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: valget «-W %s» krever et argument\n" diff --git a/po/ru.gmo b/po/ru.gmo index 0efe527..c08a866 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 7080ec5..4294cca 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2,36 +2,37 @@ # * * # * Russian Translations for Star Traders * # * Русский перевод для игры «Звёздные торговцы» * -# * Copyright (C) 1990-2017, John Zaitseff * +# * Copyright (C) 1990-2019, John Zaitseff * # * * # ************************************************************************* # # This file is distributed under the same license as the trader package. # # Contributors: -# John Zaitseff , 2011-2017. +# John Zaitseff , 2011-2019. # Vladimir B. Tsarkov , 2012. # Pavel Maryanov , 2012. # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:38+1100\n" "Last-Translator: Pavel Maryanov \n" -"Language-Team: Russian \n" +"Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. TRANSLATORS: The name of the game. You may choose to translate it into #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Звёздные торговцы" @@ -57,7 +58,7 @@ msgstr "trader" #: src/trader.c:235 #, c-format msgid "%s: invalid value for --max-turn: '%s'\n" -msgstr "%s: неверное значение аргумента для --maxturn: «%s»\n" +msgstr "%s: неверное значение аргумента для --max-turn: «%s»\n" #: src/trader.c:251 #, c-format @@ -103,7 +104,7 @@ msgstr "" "General Public License версии 3 или новее. Вы можете модифицировать и/или\n" "распространять его на этих условиях. На программу не предоставляется НИКАКИХ\n" "ГАРАНТИЙ до степени, разрешённой законом. Для получения более подробной\n" -"информации, обратитесь к веб-странице .\n" +"информации, обратитесь к веб-странице .\n" #: src/trader.c:308 #, c-format @@ -155,9 +156,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -166,10 +167,10 @@ msgstr "" "Об ошибках сообщайте по адресу %s <%s>.\n" "Об ошибках в русском переводе сообщайте по тому же адресу.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -708,7 +709,7 @@ msgstr "Старые акции: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Новые акции: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1585,7 +1586,7 @@ msgstr "Страница №%1$d из %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Нажмите <ПРОБЕЛ> для продолжения ] " @@ -1612,17 +1613,17 @@ msgstr "%s: строка имеет неверный формат: «%s»" msgid "%s: character has illegal width: '%lc'" msgstr "%s: символ имеет неверную ширину: «%lc»" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "размеры терминала слишком малы (нужны %d на %d)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: «%s»" @@ -1632,12 +1633,12 @@ msgstr "mkchstr: «%s»" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=?*\\/" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: неверный символ в строке: «%ls»" @@ -1646,12 +1647,12 @@ msgstr "gettxline: неверный символ в строке: «%ls»" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Дд1+" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Нн0-" @@ -1659,76 +1660,214 @@ msgstr "Нн0-" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Да" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Нет" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "недостаточно памяти" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: «%s»" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: «%lc»" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: неоднозначный ключ «%s%s»\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: неоднозначный ключ «%s%s»; возможности:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: неизвестный ключ «%s%s»\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: ключ «%s%s» должен использоваться без аргумента\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: ключ «%s%s» должен использоваться с аргументом\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: неверный ключ «%c»\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: ключ «%c» должен использоваться с аргументом\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: неоднозначный ключ «%s%s»\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: неоднозначный ключ «%s%s»; возможности:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: неизвестный ключ «%s%s»\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: ключ «%s%s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: ключ «%s%s» должен использоваться с аргументом\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: неверный ключ «%c»\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: ключ «%c» должен использоваться с аргументом\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: неоднозначный ключ «%s»; возможности:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: неоднозначный ключ «%s»; возможности:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: неоднозначный ключ «%s»\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: неоднозначный ключ «%s»\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: ключ «--%s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: ключ «--%s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: ключ «%c%s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: ключ «%c%s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: ключ «--%s» должен использоваться с аргументом\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: ключ «--%s» должен использоваться с аргументом\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: неизвестный ключ «--%s»\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: неизвестный ключ «--%s»\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: неизвестный ключ «%c%s»\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: неизвестный ключ «%c%s»\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: неоднозначный ключ «-W %s»\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: неоднозначный ключ «-W %s»\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: ключ «-W %s» должен использоваться с аргументом\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: ключ «-W %s» должен использоваться с аргументом\n" diff --git a/po/sr.gmo b/po/sr.gmo index 218c27f..84d8e1a 100644 Binary files a/po/sr.gmo and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po index 7e1137c..53ab30e 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Serbian Translation for Star Traders * -# * Copyright (C) 2016-17, John Zaitseff * +# * Copyright (C) 2016-19, John Zaitseff * # * Copyright (C) 2016-17, Free Software Foundation, Inc. * # * * # ************************************************************************* @@ -13,24 +13,24 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:38+1100\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. TRANSLATORS: The name of the game. You may choose to translate it into #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Звездани трговци" @@ -152,19 +152,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "Грешке пријавите програмеру %s <%s>.\n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -701,7 +701,7 @@ msgstr "Стари удео: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Нови удео: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1577,7 +1577,7 @@ msgstr "%1$d. страница од %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Притисните <РАЗМАК> да наставите ] " @@ -1604,17 +1604,17 @@ msgstr "%s: ниска је у погрешном запису: „%s“" msgid "%s: character has illegal width: '%lc'" msgstr "%s: знак је недозвољене ширине: „%lc“" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "величина терминала је премала (потребна је %d x %d)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: НИШТА" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: „%s“" @@ -1624,12 +1624,12 @@ msgstr "mkchstr: „%s“" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: недозвољени знак у нисци: „%ls“" @@ -1638,12 +1638,12 @@ msgstr "gettxline: недозвољени знак у нисци: „%ls“" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "Дд" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Нн" @@ -1651,76 +1651,214 @@ msgstr "Нн" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Да" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Не" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "нема више меморије" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: „%s“" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: НИШТА" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: „%lc“" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: опција „%s%s“ је нејасна\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: опција „%s%s“ је нејасна; могућности:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: непозната опција „%s%s“\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: опција „%s%s“ не дозвољава аргумент\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: опција „%s%s“ захтева аргумент\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: неисправна опција -- „%c“\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: опција захтева аргумент -- „%c“\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: опција „%s%s“ је нејасна\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: опција „%s%s“ је нејасна; могућности:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: непозната опција „%s%s“\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: опција „%s%s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: опција „%s%s“ захтева аргумент\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: неисправна опција -- „%c“\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: опција захтева аргумент -- „%c“\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: опција „%s“ је нејасна; могућности:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: опција „%s“ је нејасна; могућности:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: опција „%s“ је нејасна\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: опција „%s“ је нејасна\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: опција „--%s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: опција „--%s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: опција „%c%s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: опција „%c%s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: опција „--%s“ захтева аргумент\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: опција „--%s“ захтева аргумент\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: непозната опција „--%s“\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: непозната опција „--%s“\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: непозната опција „%c%s“\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: непозната опција „%c%s“\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: опција „-W %s“ је нејасна\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: опција „-W %s“ је нејасна\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: опција „-W %s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: опција „-W %s“ не дозвољава аргумент\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: опција „-W %s“ захтева аргумент\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: опција „-W %s“ захтева аргумент\n" diff --git a/po/sv.gmo b/po/sv.gmo index 7d9f2c0..500f778 100644 Binary files a/po/sv.gmo and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index 6ab352a..d6fc2ae 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,7 +1,7 @@ # ************************************************************************* # * * # * Swedish Translations for Star Traders * -# * Copyright (C) 2015-17, John Zaitseff * +# * Copyright (C) 2015-19, John Zaitseff * # * * # ************************************************************************* # @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" -"PO-Revision-Date: 2017-08-24 15:19+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" +"PO-Revision-Date: 2019-01-05 07:38+1100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -29,7 +29,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "Star Traders" @@ -151,9 +151,9 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format @@ -162,10 +162,10 @@ msgstr "" "Rapportera fel till %s <%s>.\n" "Rapportera synpunkter på översättningen till \n" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -705,7 +705,7 @@ msgstr "Gammal aktie: " #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "Ny aktie: " #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1579,7 +1579,7 @@ msgstr "Sida %1$d av %2$d" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "[ Tryck för att fortsätta ] " @@ -1607,17 +1607,17 @@ msgstr "%s: sträng har felaktigt format: ”%s”" msgid "%s: character has illegal width: '%lc'" msgstr "%s: tecken har ogiltig bredd: ”%lc”" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "terminalstorlek är för liten (%d x %d krävs)" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "mkchstr_conv: NUL" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "mkchstr: ”%s”" @@ -1627,12 +1627,12 @@ msgstr "mkchstr: ”%s”" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "=;" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "gettxline: ogiltigt tecken i sträng: ”%ls”" @@ -1641,12 +1641,12 @@ msgstr "gettxline: ogiltigt tecken i sträng: ”%ls”" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "JjYy" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "Nn" @@ -1654,76 +1654,214 @@ msgstr "Nn" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "Ja" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "Nej" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "%s: " -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr ": " -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "slut på minne" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "xmbstowcs: ”%s”" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "xwcrtomb: NUL" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "xwcrtomb: ”%lc”" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "%s: flaggan ”%s%s” är tvetydig\n" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "%s: flaggan ”%s%s” är tvetydig; möjligheter:" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "%s: okänd flagga ”%s%s”\n" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "%s: flaggan ”%s%s” tar inget argument\n" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "%s: flaggan ”%s%s” kräver ett argument\n" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "%s: ogiltig flagga -- ”%c”\n" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: flaggan kräver ett argument -- ”%c”\n" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "%s: flaggan ”%s%s” är tvetydig\n" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "%s: flaggan ”%s%s” är tvetydig; möjligheter:" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "%s: okänd flagga ”%s%s”\n" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "%s: flaggan ”%s%s” tar inget argument\n" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "%s: flaggan ”%s%s” kräver ett argument\n" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "%s: ogiltig flagga -- ”%c”\n" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "%s: flaggan kräver ett argument -- ”%c”\n" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "%s: flaggan ”%s” är tvetydig; möjligheter:" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: flaggan ”%s” är tvetydig; möjligheter:" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: flaggan ”%s” är tvetydig\n" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: flaggan ”%s” är tvetydig\n" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: flaggan ”--%s” tar inget argument\n" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: flaggan ”--%s” tar inget argument\n" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: flaggan ”%c%s” tar inget argument\n" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: flaggan ”%c%s” tar inget argument\n" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "%s: flaggan ”--%s” kräver ett argument\n" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: flaggan ”--%s” kräver ett argument\n" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: okänd flagga ”--%s”\n" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: okänd flagga ”--%s”\n" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: okänd flagga ”%c%s”\n" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: okänd flagga ”%c%s”\n" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: flaggan ”-W %s” är tvetydig\n" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: flaggan ”-W %s” är tvetydig\n" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: flaggan ”-W %s” tar inget argument\n" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: flaggan ”-W %s” tar inget argument\n" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "%s: flaggan ”-W %s” kräver ett argument\n" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: flaggan ”-W %s” kräver ett argument\n" diff --git a/po/trader.pot b/po/trader.pot index 4725bbf..5e2b22f 100644 --- a/po/trader.pot +++ b/po/trader.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: trader 7.12\n" +"Project-Id-Version: trader 7.13\n" "Report-Msgid-Bugs-To: J.Zaitseff@zap.org.au\n" -"POT-Creation-Date: 2017-08-24 15:17+1000\n" +"POT-Creation-Date: 2019-11-13 08:14+1100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" #. your own language (recommended) or keep it the same as the English #. version. Feel free to look through other translations to see how #. others have done this. -#: data/trader.desktop.in:23 src/intf.c:610 +#: data/trader.desktop.in:23 src/intf.c:611 #, c-format msgid "Star Traders" msgstr "" @@ -122,19 +122,19 @@ msgstr "" #. TRANSLATORS: The first %s is the proper name of the package #. author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is -#. the e-mail address for reporting bugs. Please add ANOTHER -#. line with the (translated) text "Report translation bugs to -#.
\n", with ADDRESS replaced with either an e-mail +#. the email address for reporting bugs. Please add ANOTHER line +#. with the (translated) text "Report translation bugs to +#.
\n", with ADDRESS replaced with either an email #. address or web URL for reporting bugs in your translation. #: src/trader.c:334 #, c-format msgid "Report bugs to %s <%s>.\n" msgstr "" -#. TRANSLATORS: %s is the e-mail address for reporting bugs. As +#. TRANSLATORS: %s is the email address for reporting bugs. As #. with the previous string, please add ANOTHER line with the #. (translated) text "Report translation bugs to
\n", -#. with ADDRESS replaced with either an e-mail address or web URL +#. with ADDRESS replaced with either an email address or web URL #. for reporting bugs in your translation. #: src/trader.c:341 #, c-format @@ -652,7 +652,7 @@ msgstr "" #: src/move.c:875 #, c-format msgctxt "label" -msgid "New Stock: " +msgid "New stock: " msgstr "" #. TRANSLATORS: "Bonus" refers to the bonus cash amount paid to @@ -1399,7 +1399,7 @@ msgstr "" #. TRANSLATORS: The reason the user is not asked "Press any #. key to continue" is historical: many, many people used to #. ask "where is the key?" :-) -#: src/help.c:486 src/intf.c:3035 +#: src/help.c:486 src/intf.c:3026 #, c-format msgid "[ Press to continue ] " msgstr "" @@ -1426,17 +1426,17 @@ msgstr "" msgid "%s: character has illegal width: '%lc'" msgstr "" -#: src/intf.c:434 +#: src/intf.c:435 #, c-format msgid "terminal size is too small (%d x %d required)" msgstr "" -#: src/intf.c:1265 +#: src/intf.c:1267 #, c-format msgid "mkchstr_conv: NUL" msgstr "" -#: src/intf.c:1568 +#: src/intf.c:1559 #, c-format msgid "mkchstr: '%s'" msgstr "" @@ -1446,12 +1446,12 @@ msgstr "" #. character. Ideally, it should contain an easily-accessible #. keycode that would NOT be used in ordinary input. Digits, ".", #. ",", "+" and "-" are definitely NOT acceptable. -#: src/intf.c:2020 +#: src/intf.c:2011 msgctxt "input|DefaultValue" msgid "=;" msgstr "" -#: src/intf.c:2034 src/intf.c:2079 +#: src/intf.c:2025 src/intf.c:2070 #, c-format msgid "gettxline: illegal character in string: '%ls'" msgstr "" @@ -1460,12 +1460,12 @@ msgstr "" #. "input|No" contain the keycodes used to determine whether a #. user is answering "Yes" or "No" in response to some question. #. Both upper and lower-case versions should be present. -#: src/intf.c:2952 +#: src/intf.c:2943 msgctxt "input|Yes" msgid "Yy" msgstr "" -#: src/intf.c:2954 +#: src/intf.c:2945 msgctxt "input|No" msgid "Nn" msgstr "" @@ -1473,76 +1473,214 @@ msgstr "" #. TRANSLATORS: The strings "Yes" and "No" are printed as a #. response to user input in answer to questions like "Are you #. sure? [Y/N] " -#: src/intf.c:3005 +#: src/intf.c:2996 msgctxt "answer" msgid "Yes" msgstr "" -#: src/intf.c:3007 +#: src/intf.c:2998 msgctxt "answer" msgid "No" msgstr "" -#: src/utils.c:378 src/utils.c:399 +#: src/utils.c:417 src/utils.c:438 #, c-format msgid "%s: " msgstr "" -#: src/utils.c:404 +#: src/utils.c:443 msgid ": " msgstr "" -#: src/utils.c:417 +#: src/utils.c:456 #, c-format msgid "out of memory" msgstr "" -#: src/utils.c:1041 +#: src/utils.c:1110 #, c-format msgid "xmbstowcs: '%s'" msgstr "" -#: src/utils.c:1081 +#: src/utils.c:1150 #, c-format msgid "xwcrtomb: NUL" msgstr "" -#: src/utils.c:1086 +#: src/utils.c:1155 #, c-format msgid "xwcrtomb: '%lc'" msgstr "" -#: lib/getopt.c:278 +#: lib/getopt.c:278 lib/obsolete-strings.c:45 #, c-format msgid "%s: option '%s%s' is ambiguous\n" msgstr "" -#: lib/getopt.c:284 +#: lib/getopt.c:284 lib/obsolete-strings.c:47 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" msgstr "" -#: lib/getopt.c:319 +#: lib/getopt.c:319 lib/obsolete-strings.c:49 #, c-format msgid "%s: unrecognized option '%s%s'\n" msgstr "" -#: lib/getopt.c:345 +#: lib/getopt.c:345 lib/obsolete-strings.c:51 #, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:360 +#: lib/getopt.c:360 lib/obsolete-strings.c:53 #, c-format msgid "%s: option '%s%s' requires an argument\n" msgstr "" -#: lib/getopt.c:621 +#: lib/getopt.c:621 lib/obsolete-strings.c:55 #, c-format msgid "%s: invalid option -- '%c'\n" msgstr "" -#: lib/getopt.c:636 lib/getopt.c:682 +#: lib/getopt.c:636 lib/getopt.c:682 lib/obsolete-strings.c:57 #, c-format msgid "%s: option requires an argument -- '%c'\n" msgstr "" + +#. TRANSLATORS: These strings are used in older versions of various +#. libraries, such as the GNU C Library as released with various +#. Linux distributions. +#: lib/obsolete-strings.c:44 +#, c-format +msgid "%s: option `%s%s' is ambiguous\n" +msgstr "" + +#: lib/obsolete-strings.c:46 +#, c-format +msgid "%s: option `%s%s' is ambiguous; possibilities:" +msgstr "" + +#: lib/obsolete-strings.c:48 +#, c-format +msgid "%s: unrecognized option `%s%s'\n" +msgstr "" + +#: lib/obsolete-strings.c:50 +#, c-format +msgid "%s: option `%s%s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:52 +#, c-format +msgid "%s: option `%s%s' requires an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:54 +#, c-format +msgid "%s: invalid option -- `%c'\n" +msgstr "" + +#: lib/obsolete-strings.c:56 +#, c-format +msgid "%s: option requires an argument -- `%c'\n" +msgstr "" + +#: lib/obsolete-strings.c:59 +#, c-format +msgid "%s: option `%s' is ambiguous; possibilities:" +msgstr "" + +#: lib/obsolete-strings.c:60 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "" + +#: lib/obsolete-strings.c:61 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "" + +#: lib/obsolete-strings.c:62 +#, c-format +msgid "%s: option '%s' is ambiguous\n" +msgstr "" + +#: lib/obsolete-strings.c:63 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:64 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:65 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:66 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:67 +#, c-format +msgid "%s: option `--%s' requires an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:68 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:69 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "" + +#: lib/obsolete-strings.c:70 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "" + +#: lib/obsolete-strings.c:71 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "" + +#: lib/obsolete-strings.c:72 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "" + +#: lib/obsolete-strings.c:73 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "" + +#: lib/obsolete-strings.c:74 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "" + +#: lib/obsolete-strings.c:75 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:76 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:77 +#, c-format +msgid "%s: option `-W %s' requires an argument\n" +msgstr "" + +#: lib/obsolete-strings.c:78 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "" diff --git a/src/Makefile.am b/src/Makefile.am index c5121ca..e2d8ad6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### @@ -24,7 +24,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. bin_PROGRAMS = trader diff --git a/src/Makefile.in b/src/Makefile.in index ce5f787..028de68 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,12 +17,12 @@ ######################################################################### # # # Star Traders: A Game of Interstellar Trading # -# Copyright (C) 1990-2017, John Zaitseff # +# Copyright (C) 1990-2019, John Zaitseff # # # ######################################################################### # Author: John Zaitseff -# $Id: c5121ca6902e89b7792d99bccdfa04dff14a7c5f $ +# $Id: e2d8ad6f959a6aa76cabe5e0367f8a859a5f5eab $ # # This file, src/Makefile.am, contains the source-code Makefile for Star # Traders. It needs to be processed by automake to produce the @@ -40,7 +40,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. +# along with this program. If not, see https://www.gnu.org/licenses/. VPATH = @srcdir@ am__is_gnu_make = { \ @@ -101,6 +101,7 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -120,19 +121,19 @@ subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/assert.m4 \ - $(top_srcdir)/m4/ax_append_flag.m4 \ $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_compiler_vendor.m4 \ + $(top_srcdir)/m4/ax_prepend_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/configmake.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ $(top_srcdir)/m4/extensions.m4 \ - $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ - $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ @@ -141,25 +142,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ - $(top_srcdir)/m4/localtime-buffer.m4 \ + $(top_srcdir)/m4/localtime-buffer.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mbrtowc.m4 \ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mmap-anon.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/monetary_h.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/time_h.m4 \ - $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/warn-on-use.m4 \ - $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ - $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wcsdup.m4 \ - $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ - $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ - $(top_srcdir)/m4/wmemcpy.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wcsdup.m4 $(top_srcdir)/m4/wctob.m4 \ + $(top_srcdir)/m4/wctomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemcpy.m4 \ + $(top_srcdir)/m4/xopen-source.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -190,7 +193,12 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/trader-exch.Po \ + ./$(DEPDIR)/trader-fileio.Po ./$(DEPDIR)/trader-game.Po \ + ./$(DEPDIR)/trader-globals.Po ./$(DEPDIR)/trader-help.Po \ + ./$(DEPDIR)/trader-intf.Po ./$(DEPDIR)/trader-move.Po \ + ./$(DEPDIR)/trader-trader.Po ./$(DEPDIR)/trader-utils.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -237,7 +245,6 @@ CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -271,9 +278,9 @@ EXEEXT = @EXEEXT@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ACCESS = @GNULIB_ACCESS@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ @@ -281,6 +288,7 @@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ @@ -334,6 +342,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -349,6 +358,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -442,6 +452,7 @@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRFMON_L = @GNULIB_STRFMON_L@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ @@ -453,6 +464,7 @@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLD = @GNULIB_STRTOLD@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ @@ -530,6 +542,7 @@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ @@ -560,6 +573,7 @@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -579,6 +593,7 @@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -591,10 +606,12 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ @@ -611,6 +628,7 @@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ @@ -623,7 +641,9 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MONETARY_H = @HAVE_MONETARY_H@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -648,6 +668,7 @@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -657,10 +678,12 @@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRFMON_L = @HAVE_STRFMON_L@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -677,7 +700,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ @@ -745,8 +767,10 @@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTHREAD = @LIBTHREAD@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ @@ -757,10 +781,13 @@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONETARY_H = @MONETARY_H@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -768,6 +795,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MONETARY_H = @NEXT_AS_FIRST_DIRECTIVE_MONETARY_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ @@ -784,6 +812,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MONETARY_H = @NEXT_MONETARY_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ @@ -814,6 +843,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ @@ -824,6 +854,7 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ @@ -831,6 +862,7 @@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -848,11 +880,13 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ @@ -880,6 +914,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_PERROR = @REPLACE_PERROR@ @@ -891,6 +926,7 @@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ @@ -903,6 +939,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ @@ -915,6 +952,7 @@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFMON_L = @REPLACE_STRFMON_L@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ @@ -923,6 +961,7 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ @@ -1019,7 +1058,6 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ -lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -1076,8 +1114,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1141,15 +1179,21 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-exch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-fileio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-game.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-globals.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-intf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-move.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-trader.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-utils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-exch.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-fileio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-game.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-globals.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-help.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-intf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-move.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-trader.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trader-utils.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -1343,7 +1387,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1415,7 +1462,15 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/trader-exch.Po + -rm -f ./$(DEPDIR)/trader-fileio.Po + -rm -f ./$(DEPDIR)/trader-game.Po + -rm -f ./$(DEPDIR)/trader-globals.Po + -rm -f ./$(DEPDIR)/trader-help.Po + -rm -f ./$(DEPDIR)/trader-intf.Po + -rm -f ./$(DEPDIR)/trader-move.Po + -rm -f ./$(DEPDIR)/trader-trader.Po + -rm -f ./$(DEPDIR)/trader-utils.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1461,7 +1516,15 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/trader-exch.Po + -rm -f ./$(DEPDIR)/trader-fileio.Po + -rm -f ./$(DEPDIR)/trader-game.Po + -rm -f ./$(DEPDIR)/trader-globals.Po + -rm -f ./$(DEPDIR)/trader-help.Po + -rm -f ./$(DEPDIR)/trader-intf.Po + -rm -f ./$(DEPDIR)/trader-move.Po + -rm -f ./$(DEPDIR)/trader-trader.Po + -rm -f ./$(DEPDIR)/trader-utils.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1481,7 +1544,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ diff --git a/src/README b/src/README index 091077c..35b1bdd 100644 --- a/src/README +++ b/src/README @@ -1,20 +1,19 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, src, contains the main source code for Star Traders. The -source code is split up among the following files: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ - trader.c trader.h - Main program, command-line interface - globals.c globals.h - Global game constants and variables - game.c game.h - Game start, end and (some) display functions - move.c move.h - Functions for making and processing a move - exch.c exch.h - Stock Exchange and Bank functions - fileio.c fileio.h - Load and save game file functions - help.c help.h - Help text functions: how to play the game - intf.c intf.h - Basic text input/output functions - utils.c utils.h - Utility functions needed by Star Traders - system.h - All system header files are included here +This directory, `src`, contains the main source code for Star Traders. +The source code is split up among the following files: + +* `trader.c`, `trader.h`: Main program, command-line interface +* `globals.c`, `globals.h`: Global game constants and variables +* `game.c`, `game.h`: Game start, end and (some) display functions +* `move.c`, `move.h`: Functions for making and processing a move +* `exch.c`, `exch.h`: Stock Exchange and Bank functions +* `fileio.c`, `fileio.h`: Load and save game file functions +* `help.c`, `help.h`: Help text functions: how to play the game +* `intf.c`, `intf.h`: Basic text input/output functions +* `utils.c`, `utils.h`: Utility functions needed by Star Traders +* `system.h`: All system header files are included here diff --git a/src/exch.c b/src/exch.c index f05f7b7..eed34c5 100644 --- a/src/exch.c +++ b/src/exch.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -25,7 +25,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -210,10 +210,10 @@ void exchange_stock (void) } for (i = 0, found = false; keycode_company[i] != L'\0'; i++) { - if (keycode_company[i] == key) { + if (keycode_company[i] == (wchar_t) key) { found = true; if (company[i].on_map) { - selection = i; + selection = (selection_t) i; } else { beep(); } diff --git a/src/exch.h b/src/exch.h index 8d76aa7..a85f2af 100644 --- a/src/exch.h +++ b/src/exch.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/fileio.c b/src/fileio.c index bf1c67e..b423a79 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -406,7 +406,7 @@ bool load_game (int num) lineno++; } - // Read in a dummy sentinal value + // Read in a dummy sentinel value load_game_read_int(n, n == GAME_FILE_SENTINEL); if (fclose(file) == EOF) { @@ -587,7 +587,7 @@ bool save_game (int num) fprintf(file, "%s", encbuf); } - // Write out a dummy sentinal value + // Write out a dummy sentinel value save_game_write_int(GAME_FILE_SENTINEL); if (fclose(file) == EOF) { diff --git a/src/fileio.h b/src/fileio.h index 63819b5..1a93165 100644 --- a/src/fileio.h +++ b/src/fileio.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/game.c b/src/game.c index 6e9d525..6b41fe1 100644 --- a/src/game.c +++ b/src/game.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -25,7 +25,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/game.h b/src/game.h index 9075990..a8fb349 100644 --- a/src/game.h +++ b/src/game.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -25,7 +25,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/globals.c b/src/globals.c index b25389e..6128339 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/globals.h b/src/globals.h index 6ceaf8d..107b8ce 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/help.c b/src/help.c index eb8f925..5352253 100644 --- a/src/help.c +++ b/src/help.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/help.h b/src/help.h index 78352d9..06eb4e7 100644 --- a/src/help.h +++ b/src/help.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/intf.c b/src/intf.c index d8c58f4..6994d03 100644 --- a/src/intf.c +++ b/src/intf.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -290,7 +290,8 @@ static int mkchstr_add (wchar_t *restrict *restrict outbuf, wchar_t *restrict *restrict lastspc, chtype *restrict *restrict spcattr, int *restrict widthspc, int *restrict widthbuf, - int widthbufsize, const wchar_t *restrict *restrict str); + int widthbufsize, + const wchar_t *restrict *restrict str); /* @@ -1139,7 +1140,8 @@ int mkchstr_add (wchar_t *restrict *restrict outbuf, chtype attr, int maxlines, int maxwidth, int *restrict line, int *restrict width, wchar_t *restrict *restrict lastspc, chtype *restrict *restrict spcattr, int *restrict widthspc, - int *restrict widthbuf, int widthbufsize, + int *restrict widthbuf, + int widthbufsize __attribute__((unused)), const wchar_t *restrict *restrict str) { int w, wspc; @@ -1268,7 +1270,7 @@ void mkchstr_conv (chtype *restrict chbuf, int chbufsize, // Yes, we want to convert a wide NUL, too! n = xwcrtomb(convbuf, *wcbuf, &mbstate); - if (chbufsize > endsize + n) { + if (chbufsize > (int) endsize + (int) n) { for (p = convbuf; n > 0; n--, p++, chbuf++, chbufsize--) { if (*p == '\0' || *p == '\n') { /* This code assumes '\n' can never appear in a @@ -1465,21 +1467,10 @@ int vmkchstr (chtype *restrict chbuf, int chbufsize, chtype attr_norm, case L'N': // Insert a monetary amount (double) into the output - { - /* strfmon() is not available in a wide-char - version, so we need a multibyte char buffer */ - char *buf = xmalloc(BUFSIZE); - - if (l_strfmon(buf, BUFSIZE, spec->flag_nosym ? "%!n" : "%n", - format_arg[spec->arg_num].a.a_double) < 0) { - saved_errno = errno; - free(buf); - errno = saved_errno; - goto error; - } - - xmbstowcs(fmtbuf, buf, BUFSIZE); - free(buf); + if (xwcsfmon(fmtbuf, BUFSIZE, spec->flag_nosym ? + "%!n" : "%n", + format_arg[spec->arg_num].a.a_double) < 0) { + goto error; } str = fmtbuf; @@ -1763,7 +1754,7 @@ int getwch (WINDOW *win, wint_t *restrict wch) int ret = wget_wch(win, wch); if (ret == OK) { - char c = wctob(*wch); + int c = wctob(*wch); if ((c >= 0 && c < ' ') || c == 0x7F) { /* Make control characters (and DEL) appear to be similar to function keys. This assumes the KEY_xxx definitions do @@ -1771,7 +1762,7 @@ int getwch (WINDOW *win, wint_t *restrict wch) (due to the same codes being returned by getch()). We do not use iswcntrl() as certain additional Unicode characters are also control characters (eg, U+2028) */ - *wch = (unsigned char) c; + *wch = (wint_t) c; ret = KEY_CODE_YES; } } @@ -1835,11 +1826,11 @@ int getwch (WINDOW *win, wint_t *restrict wch) // A valid multibyte sequence memcpy(mbstate, &mbcopy, sizeof(mbstate_t)); - char c = wctob(val); + int c = wctob(val); if ((c >= 0 && c < ' ') || c == 0x7F) { /* Make control characters (and DEL) appear to be similar to function keys. */ - val = (unsigned char) c; + val = (wchar_t) c; ret = KEY_CODE_YES; } else { // An ordinary key @@ -1938,7 +1929,7 @@ void cpos_end (const wchar_t *restrict buf, int *restrict cpos, // cpos_dec: Adjust cpos and st: scroll to the left by w columns void cpos_dec (const wchar_t *restrict buf, int *restrict cpos, - int *restrict st, int w, int width) + int *restrict st, int w, int width __attribute__((unused))) { if (*cpos - w >= 0) { // Cursor position is not yet in first column diff --git a/src/intf.h b/src/intf.h index c179110..ec6479b 100644 --- a/src/intf.h +++ b/src/intf.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -25,7 +25,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/move.c b/src/move.c index bf9d649..9a5c7c4 100644 --- a/src/move.c +++ b/src/move.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -292,9 +292,9 @@ selection_t get_move (void) } for (i = 0, found = false; keycode_game_move[i] != L'\0'; i++) { - if (keycode_game_move[i] == key) { + if (keycode_game_move[i] == (wchar_t) key) { found = true; - selection = i; + selection = (selection_t) i; curs_set(CURS_OFF); left(curwin, 1, promptend, attr_normal, attr_choice, @@ -780,7 +780,7 @@ void try_start_new_company (int x, int y) company[i].name); txrefresh(); - galaxy_map[x][y] = COMPANY_TO_MAP(i); + galaxy_map[x][y] = (map_val_t) COMPANY_TO_MAP(i); company[i].share_price = INITIAL_SHARE_PRICE; company[i].share_return = INITIAL_RETURN; @@ -872,7 +872,7 @@ void merge_companies (map_val_t a, map_val_t b) right(curwin, lines + 4, x, attr_normal, 0, 0, 1, /* TRANSLATORS: "New stock" refers to the company that has absorbed the other due to a merger. */ - pgettext("label", "New Stock: ")); + pgettext("label", "New stock: ")); leftch(curwin, lines + 4, x, chbuf_aa, 1, &width_aa); mvwhline(curwin, lines + 6, 2, ' ' | attr_subtitle, w - 4); @@ -986,7 +986,7 @@ void include_outpost (int num, int x, int y) assign_vals(x, y, left, right, up, down); - galaxy_map[x][y] = COMPANY_TO_MAP(num); + galaxy_map[x][y] = (map_val_t) COMPANY_TO_MAP(num); inc_share_price(num, SHARE_PRICE_INC_OUTPOST); // Outposts next to stars are more valuable: increment again diff --git a/src/move.h b/src/move.h index 8456a99..e5f9d09 100644 --- a/src/move.h +++ b/src/move.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -57,7 +57,7 @@ extern void select_moves (void); This function displays the galaxy map and the current moves, then waits for the player to select one of the moves. On entry, current_player contains the current player number; quit_selected and/or abort_game may - be true (if so, get_move() justs returns SEL_QUIT without waiting for + be true (if so, get_move() just returns SEL_QUIT without waiting for the player to select a move). The return value is the choice made by the player. diff --git a/src/system.h b/src/system.h index 1c47a00..263a339 100644 --- a/src/system.h +++ b/src/system.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -43,8 +43,10 @@ * System header files * ************************************************************************/ -#define _XOPEN_SOURCE 700 // Use SUSv4 where possible -#define _GNU_SOURCE 1 // Use GNU extensions as well +/* Note that the configure-generated "config.h" defines feature test + macros as required by the compiler or operating system C library. In + particular, it defines _XOPEN_SOURCE, _GNU_SOURCE, __EXTENSIONS__ and + similar symbols to appropriate values. */ // Headers defined by ISO/IEC 9899:1999 (C99) diff --git a/src/trader.c b/src/trader.c index 0d6d43d..43c9473 100644 --- a/src/trader.c +++ b/src/trader.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -28,7 +28,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -293,7 +293,7 @@ This program is free software that is distributed under the terms of the\n\ GNU General Public License, version 3 or later. You are welcome to\n\ modify and/or distribute it under certain conditions. This program has\n\ NO WARRANTY, to the extent permitted by law; see the License for details.\n\ -"), program_name, PACKAGE_VERSION, "1990-2017"); +"), program_name, PACKAGE_VERSION, "1990-2019"); exit(EXIT_SUCCESS); } @@ -327,16 +327,16 @@ playing that game. If GAME is not specified, start a new game.\n\n\ #ifdef PACKAGE_AUTHOR /* TRANSLATORS: The first %s is the proper name of the package author, John Zaitseff [IPA d͡ʒɒn ˈzaɪ̯t͡səf]; the second %s is - the e-mail address for reporting bugs. Please add ANOTHER - line with the (translated) text "Report translation bugs to -
\n", with ADDRESS replaced with either an e-mail + the email address for reporting bugs. Please add ANOTHER line + with the (translated) text "Report translation bugs to +
\n", with ADDRESS replaced with either an email address or web URL for reporting bugs in your translation. */ printf(_("Report bugs to %s <%s>.\n"), PACKAGE_AUTHOR, PACKAGE_BUGREPORT); #else - /* TRANSLATORS: %s is the e-mail address for reporting bugs. As + /* TRANSLATORS: %s is the email address for reporting bugs. As with the previous string, please add ANOTHER line with the (translated) text "Report translation bugs to
\n", - with ADDRESS replaced with either an e-mail address or web URL + with ADDRESS replaced with either an email address or web URL for reporting bugs in your translation. */ printf(_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT); #endif diff --git a/src/trader.h b/src/trader.h index 392a9ae..3225acf 100644 --- a/src/trader.h +++ b/src/trader.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ diff --git a/src/utils.c b/src/utils.c index c5e5f52..81e62f6 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -44,9 +44,9 @@ struct lconv lconvinfo; // localeconv() information, converted to wide strings wchar_t *decimal_point; // Locale's radix character wchar_t *thousands_sep; // Locale's thousands separator -wchar_t *currency_symbol; // Local currency symbol -wchar_t *mon_decimal_point; // Local monetary radix character -wchar_t *mon_thousands_sep; // Local monetary thousands separator +wchar_t *currency_symbol; // Locale's currency symbol +wchar_t *mon_decimal_point; // Locale's monetary radix character +wchar_t *mon_thousands_sep; // Locale's monetary thousands separator /************************************************************************ @@ -56,11 +56,50 @@ wchar_t *mon_thousands_sep; // Local monetary thousands separator #define GAME_FILENAME_PROTO "game%d" #define GAME_FILENAME_BUFSIZE 16 -// Default values used to override POSIX locale -#define MOD_POSIX_CURRENCY_SYMBOL "$" -#define MOD_POSIX_FRAC_DIGITS 2 -#define MOD_POSIX_P_CS_PRECEDES 1 -#define MOD_POSIX_P_SEP_BY_SPACE 0 +// Values used to override the standard POSIX locale +#define MOD_POSIX_DECIMAL_POINT "." +#define MOD_POSIX_THOUSANDS_SEP "" +#define MOD_POSIX_GROUPING "" +#define MOD_POSIX_INT_CURR_SYMBOL "" +#define MOD_POSIX_CURRENCY_SYMBOL "$" // Standard: "" +#define MOD_POSIX_MON_DECIMAL_POINT "." // Standard: "" +#define MOD_POSIX_MON_THOUSANDS_SEP "" +#define MOD_POSIX_MON_GROUPING "" +#define MOD_POSIX_POSITIVE_SIGN "" +#define MOD_POSIX_NEGATIVE_SIGN "-" // Standard: "" +#define MOD_POSIX_INT_FRAC_DIGITS 2 // Standard: CHAR_MAX +#define MOD_POSIX_FRAC_DIGITS 2 // Standard: CHAR_MAX +#define MOD_POSIX_P_CS_PRECEDES 1 // Standard: CHAR_MAX +#define MOD_POSIX_P_SEP_BY_SPACE 0 // Standard: CHAR_MAX +#define MOD_POSIX_N_CS_PRECEDES 1 // Standard: CHAR_MAX +#define MOD_POSIX_N_SEP_BY_SPACE 0 // Standard: CHAR_MAX +#define MOD_POSIX_P_SIGN_POSN 1 // Standard: CHAR_MAX +#define MOD_POSIX_N_SIGN_POSN 1 // Standard: CHAR_MAX + +static const struct lconv mod_posix_lconv = + { + .decimal_point = MOD_POSIX_DECIMAL_POINT, + .thousands_sep = MOD_POSIX_THOUSANDS_SEP, + .grouping = MOD_POSIX_GROUPING, + .int_curr_symbol = MOD_POSIX_INT_CURR_SYMBOL, + .currency_symbol = MOD_POSIX_CURRENCY_SYMBOL, + .mon_decimal_point = MOD_POSIX_MON_DECIMAL_POINT, + .mon_thousands_sep = MOD_POSIX_MON_THOUSANDS_SEP, + .mon_grouping = MOD_POSIX_MON_GROUPING, + .positive_sign = MOD_POSIX_POSITIVE_SIGN, + .negative_sign = MOD_POSIX_NEGATIVE_SIGN, + .int_frac_digits = MOD_POSIX_INT_FRAC_DIGITS, + .frac_digits = MOD_POSIX_FRAC_DIGITS, + .p_cs_precedes = MOD_POSIX_P_CS_PRECEDES, + .p_sep_by_space = MOD_POSIX_P_SEP_BY_SPACE, + .n_cs_precedes = MOD_POSIX_N_CS_PRECEDES, + .n_sep_by_space = MOD_POSIX_N_SEP_BY_SPACE, + .p_sign_posn = MOD_POSIX_P_SIGN_POSN, + .n_sign_posn = MOD_POSIX_N_SIGN_POSN + + // ISO/IEC 9945-1:2008 (SUSv4) defines additional fields, but + // this program does not use them. + }; // Constants used for scrambling and unscrambling game data #define SCRAMBLE_CRC_LEN 8 // Length of CRC in ASCII (excl NUL) @@ -186,7 +225,7 @@ static const unsigned char xor_table[] = { static char *home_directory_str = NULL; // Full pathname to home static char *data_directory_str = NULL; // Writable data dir pathname -static bool add_currency_symbol = false; // Do we need to add "$"? +static bool is_posix_locale = false; // Override strfmon()? /************************************************************************ @@ -202,11 +241,11 @@ static bool add_currency_symbol = false; // Do we need to add "$"? Returns: (nothing) This function copies n bytes from *src into *dest, applying a XOR with - the contents of xor_table in the process. It is a reversable function: + the contents of xor_table in the process. It is a reversible function: apply_xor(apply_xor(buffer)) == buffer. It is used by both scramble() and unscramble(). */ -static void apply_xor (void *restrict dest, const void *restrict src, +static void apply_xor (char *restrict dest, const char *restrict src, size_t n, unsigned int *restrict key); @@ -484,24 +523,24 @@ void init_locale (void) lc = localeconv(); assert(lc != NULL); + is_posix_locale = false; lconvinfo = *lc; - add_currency_symbol = false; - /* Are we in the POSIX locale? The string returned by setlocale() is supposed to be opaque, but in practise is not. To be on the safe side, we explicitly set the locale to "C", then test the returned value of that, too. */ cloc = setlocale(LC_MONETARY, "C"); - if ( strcmp(cur, cloc) == 0 - || strcmp(cur, "POSIX") == 0 || strcmp(cur, "C") == 0 - || strcmp(cur, "C.UTF-8") == 0 || strcmp(cur, "C.utf8") == 0) { + if ( strcmp(cur, cloc) == 0 + || strcmp(cur, "POSIX") == 0 + || strcmp(cur, "POSIX.UTF-8") == 0 + || strcmp(cur, "POSIX.utf8") == 0 + || strcmp(cur, "C") == 0 + || strcmp(cur, "C.UTF-8") == 0 + || strcmp(cur, "C.utf8") == 0) { - add_currency_symbol = true; - lconvinfo.currency_symbol = MOD_POSIX_CURRENCY_SYMBOL; - lconvinfo.frac_digits = MOD_POSIX_FRAC_DIGITS; - lconvinfo.p_cs_precedes = MOD_POSIX_P_CS_PRECEDES; - lconvinfo.p_sep_by_space = MOD_POSIX_P_SEP_BY_SPACE; + is_posix_locale = true; + lconvinfo = mod_posix_lconv; } // Convert localeconv() information to wide strings @@ -531,62 +570,92 @@ void init_locale (void) /***********************************************************************/ -// l_strfmon: Convert monetary value to a string +// xwcsfmon: Convert monetary value to a wide-character string -ssize_t l_strfmon (char *restrict buf, size_t maxsize, - const char *restrict format, double val) +ssize_t xwcsfmon (wchar_t *restrict buf, size_t maxsize, + const char *restrict format, double val) { - /* The current implementation assumes MOD_POSIX_P_CS_PRECEDES is 1 - (currency symbol precedes value) and that MOD_POSIX_P_SEP_BY_SPACE - is 0 (no space separates currency symbol and value). It does, - however, handle currency symbols of length > 1. */ + ssize_t n; + char *s = xmalloc(BUFSIZE); - assert(MOD_POSIX_P_CS_PRECEDES == 1); - assert(MOD_POSIX_P_SEP_BY_SPACE == 0); - ssize_t ret = strfmon(buf, maxsize, format, val); + /* Current and previous versions of ISO/IEC 9945-1 (POSIX), namely + SUSv3 (2001) and SUSv4 (2008), require strfmon() to return rather + meaningless strings when used with the POSIX "C" locale. In + particular, the standard POSIX locale does not define a currency + symbol, a monetary radix symbol (decimal point) or a negative + sign. This means strfmon(..., "%n", -123.45) is supposed to + produce "12345" instead of something like "-$123.45"! The + following code overcomes these limitations by using snprintf(). */ - if (ret > 0 && add_currency_symbol) { - if (strstr(format, "!") == NULL) { - /* Insert lconvinfo.currency_symbol to s. + if (! is_posix_locale) { + n = strfmon(s, BUFSIZE, format, val); + } else { + /* The current implementation assumes the monetary decimal point + is overridden to "." (ie, MOD_POSIX_MON_DECIMAL_POINT == "."), + the currency symbol is to precede the value, no spaces are to + separate currency symbol and value, and sign is to precede + both currency symbol and value. */ + assert(MOD_POSIX_P_CS_PRECEDES == 1); + assert(MOD_POSIX_P_SEP_BY_SPACE == 0); + assert(MOD_POSIX_N_CS_PRECEDES == 1); + assert(MOD_POSIX_N_SEP_BY_SPACE == 0); + assert(MOD_POSIX_P_SIGN_POSN == 1); + assert(MOD_POSIX_N_SIGN_POSN == 1); - NB: add_currecy_symbol == true assumes a POSIX locale and - that the character encoding is ASCII-safe (such as by - being ASCII itself, or UTF-8). */ - const char *sym = lconvinfo.currency_symbol; - int symlen = strlen(sym); - char *p; - int spc; +# define MOD_POSIX_q(s) MOD_POSIX_qq(s) +# define MOD_POSIX_qq(s) #s - assert(maxsize > (unsigned int) symlen); +# define MOD_POSIX_FMT_POS MOD_POSIX_POSITIVE_SIGN MOD_POSIX_CURRENCY_SYMBOL "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f" +# define MOD_POSIX_FMT_NEG MOD_POSIX_NEGATIVE_SIGN MOD_POSIX_CURRENCY_SYMBOL "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f" +# define MOD_POSIX_FMT_POS_NOSYM MOD_POSIX_POSITIVE_SIGN "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f" +# define MOD_POSIX_FMT_NEG_NOSYM MOD_POSIX_NEGATIVE_SIGN "%." MOD_POSIX_q(MOD_POSIX_FRAC_DIGITS) "f" - // Count number of leading spaces - for (p = buf, spc = 0; *p == ' '; p++, spc++) - ; - - if (symlen <= spc) { - /* Enough space for currency symbol: copy it WITHOUT - copying terminating NUL character */ - for (p -= symlen; *sym != '\0'; p++, sym++) { - *p = *sym; - } + if (strcmp(format, "%n") == 0) { + if (val >= 0.0) { + n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_POS, val); } else { - // Make space for currency symbol, then copy it + n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_NEG, -val); + } + } else if (strcmp(format, "%!n") == 0) { + if (val >= 0.0) { + n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_POS_NOSYM, val); + } else { + n = snprintf(s, BUFSIZE, MOD_POSIX_FMT_NEG_NOSYM, -val); + } + } else { + // Other strfmon() formats are not supported + errno = EINVAL; + n = -1; + } + } - memmove(buf + symlen - spc, buf, maxsize - (symlen - spc)); - buf[maxsize - 1] = '\0'; + if (n >= BUFSIZE) { + // Truncate the too-long output with a terminating NUL + s[BUFSIZE - 1] = '\0'; + } - for ( ; *sym != '\0'; sym++, buf++) { - // Make sure terminating NUL character is NOT copied! - *buf = *sym; - } + if (n >= 0) { + xmbstowcs(buf, s, maxsize); - ret = MIN((unsigned int) ret + symlen - spc, maxsize - 1); + /* Some buggy implementations of strfmon(), such as that on + FreeBSD and Cygwin, assume localeconv.mon_thousands_sep and + similar strings contain either a single char or NUL instead of + a multibyte character string. However, this assumption fails + on locales such as ru_RU.UTF-8 which use U+00A0 NO-BREAK SPACE + for mon_thousands_sep (stored in UTF-8 as 0xC2 0xA0. As a + result, incomplete character sequences are copied, which are + translated to EILSEQ_REPL_WC characters by xmbstowcs() above. + Fix such characters by replacing them with a space. */ + for (wchar_t *p = buf; *p != L'\0'; p++) { + if (*p == EILSEQ_REPL_WC) { + *p = L' '; } } } - return ret; + free(s); + return n; } @@ -743,11 +812,11 @@ char *unscramble (char *restrict dest, const char *restrict src, return NULL; } - // Descramble xorbuf using *key, ignoring CRC32 in front + // Unscramble xorbuf using *key, ignoring CRC32 in front apply_xor(dest, midxor, xorlen - SCRAMBLE_CRC_LEN, key); // Convert the output to a C string - assert(size >= xorlen - SCRAMBLE_CRC_LEN + 1); + assert(size >= (size_t) xorlen - SCRAMBLE_CRC_LEN + 1); dest[xorlen - SCRAMBLE_CRC_LEN] = '\0'; free(xorbuf); @@ -760,7 +829,7 @@ char *unscramble (char *restrict dest, const char *restrict src, /***********************************************************************/ // apply_xor: Scramble a buffer using xor_table -void apply_xor (void *restrict dest, const void *restrict src, +void apply_xor (char *restrict dest, const char *restrict src, size_t n, unsigned int *restrict key) { assert(dest != NULL); @@ -868,13 +937,13 @@ ssize_t b64decode (const void *restrict in, size_t inlen, assert(u_in != NULL); assert(u_out != NULL); assert(outlen > 0); + assert(UNSCRAMBLE_TABLE_SIZE == UCHAR_MAX + 1); count = 0; n = 1; for (size_t i = 0; i < inlen && *u_in != '\0'; i++, u_in++) { - int v = *u_in > UNSCRAMBLE_TABLE_SIZE ? - UNSCRAMBLE_INVALID : unscramble_table[*u_in]; + int v = unscramble_table[*u_in]; switch (v) { case UNSCRAMBLE_INVALID: @@ -1080,8 +1149,8 @@ size_t xwcrtomb (char *restrict dest, wchar_t wc, mbstate_t *restrict mbstate) if ((n = wcrtomb(dest, L'\0', &mbcopy)) == (size_t) -1) { errno_exit(_("xwcrtomb: NUL")); } - dest[n] = EILSEQ_REPL; - dest[n++] = '\0'; + dest[n++] = EILSEQ_REPL; + dest[n] = '\0'; } else { errno_exit(_("xwcrtomb: '%lc'"), (wint_t) wc); } diff --git a/src/utils.h b/src/utils.h index db596fd..fb434c0 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1,7 +1,7 @@ /************************************************************************ * * * Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2017, John Zaitseff * +* Copyright (C) 1990-2019, John Zaitseff * * * ************************************************************************/ @@ -24,7 +24,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + along with this program. If not, see https://www.gnu.org/licenses/. */ @@ -87,9 +87,9 @@ extern void init_program_name (const char *argv0); Returns: const char * - Pointer to home directory This function returns the full pathname to the user's home directory, - using the HOME environment variable. Note that the existance or - writability of this pathname is NOT checked by this function. NULL is - returned if the home directory cannot be determined. + using the HOME environment variable. Note that the existence of or + ability to write to this pathname is NOT checked by this function. + NULL is returned if the home directory cannot be determined. */ extern const char *home_directory (void); @@ -102,8 +102,9 @@ extern const char *home_directory (void); This function returns the full pathname to a potentially-writable subdirectory within the user's home directory. Essentially, this function returns home_directory() + "/." + program_name. Note that - this path is NOT created by this function, nor is the writability of - this path checked. NULL is returned if this path cannot be determined. + this path is NOT created by this function, nor is the ability to write + to this path checked. NULL is returned if this path cannot be + determined. */ extern const char *data_directory (void); @@ -238,21 +239,20 @@ extern void init_locale (void); /* - Function: l_strfmon - Convert monetary value to a string - Parameters: buf - Buffer to receive result - maxsize - Maximum size of buffer - format - strfmon() format to use - val - Monetary value to convert - Returns: ssize_t - Size of returned string + Function: xwcsfmon - Convert monetary value to a wide-character string + Parameters: buf - Buffer to receive result + maxsize - Maximum size of buffer, in multiples of wchar_t + format - strfmon() format to use + val - Monetary value to convert + Returns: ssize_t - Size of returned string This function calls strfmon() to convert val to a suitable monetary - value string. If the POSIX or C locale is in effect, and "!" does NOT - appear in the format, "$" is inserted into the resulting string. This - function overcomes the limitation that the POSIX locale does not define - anything for localeconv()->currency_symbol. + value string, then converts the result to a wide-character string and + places it in buf. It makes appropriate adjustments to the output if + the POSIX locale is in effect or if the locale uses no-break spaces. */ -extern ssize_t l_strfmon (char *restrict buf, size_t maxsize, - const char *restrict format, double val); +extern ssize_t xwcsfmon (wchar_t *restrict buf, size_t maxsize, + const char *restrict format, double val); /************************************************************************