/* ==> Do not modify this file!!  -*- buffer-read-only: t -*- vi:set ro:
   It is created automatically by copying.awk.
   Modify copying.awk instead.  <== */

#include "defs.h"
#include "command.h"
#include "gdbcmd.h"

static void show_copying_command (const char *, int);

static void show_warranty_command (const char *, int);

static void
show_copying_command (const char *ignore, int from_tty)
{
  printf_filtered ("                    GNU GENERAL PUBLIC LICENSE\n");
  printf_filtered ("                       Version 3, 29 June 2007\n");
  printf_filtered ("\n");
  printf_filtered (" Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n");
  printf_filtered (" Everyone is permitted to copy and distribute verbatim copies\n");
  printf_filtered (" of this license document, but changing it is not allowed.\n");
  printf_filtered ("\n");
  printf_filtered ("                            Preamble\n");
  printf_filtered ("\n");
  printf_filtered ("  The GNU General Public License is a free, copyleft license for\n");
  printf_filtered ("software and other kinds of works.\n");
  printf_filtered ("\n");
  printf_filtered ("  The licenses for most software and other practical works are designed\n");
  printf_filtered ("to take away your freedom to share and change the works.  By contrast,\n");
  printf_filtered ("the GNU General Public License is intended to guarantee your freedom to\n");
  printf_filtered ("share and change all versions of a program--to make sure it remains free\n");
  printf_filtered ("software for all its users.  We, the Free Software Foundation, use the\n");
  printf_filtered ("GNU General Public License for most of our software; it applies also to\n");
  printf_filtered ("any other work released this way by its authors.  You can apply it to\n");
  printf_filtered ("your programs, too.\n");
  printf_filtered ("\n");
  printf_filtered ("  When we speak of free software, we are referring to freedom, not\n");
  printf_filtered ("price.  Our General Public Licenses are designed to make sure that you\n");
  printf_filtered ("have the freedom to distribute copies of free software (and charge for\n");
  printf_filtered ("them if you wish), that you receive source code or can get it if you\n");
  printf_filtered ("want it, that you can change the software or use pieces of it in new\n");
  printf_filtered ("free programs, and that you know you can do these things.\n");
  printf_filtered ("\n");
  printf_filtered ("  To protect your rights, we need to prevent others from denying you\n");
  printf_filtered ("these rights or asking you to surrender the rights.  Therefore, you have\n");
  printf_filtered ("certain responsibilities if you distribute copies of the software, or if\n");
  printf_filtered ("you modify it: responsibilities to respect the freedom of others.\n");
  printf_filtered ("\n");
  printf_filtered ("  For example, if you distribute copies of such a program, whether\n");
  printf_filtered ("gratis or for a fee, you must pass on to the recipients the same\n");
  printf_filtered ("freedoms that you received.  You must make sure that they, too, receive\n");
  printf_filtered ("or can get the source code.  And you must show them these terms so they\n");
  printf_filtered ("know their rights.\n");
  printf_filtered ("\n");
  printf_filtered ("  Developers that use the GNU GPL protect your rights with two steps:\n");
  printf_filtered ("(1) assert copyright on the software, and (2) offer you this License\n");
  printf_filtered ("giving you legal permission to copy, distribute and/or modify it.\n");
  printf_filtered ("\n");
  printf_filtered ("  For the developers' and authors' protection, the GPL clearly explains\n");
  printf_filtered ("that there is no warranty for this free software.  For both users' and\n");
  printf_filtered ("authors' sake, the GPL requires that modified versions be marked as\n");
  printf_filtered ("changed, so that their problems will not be attributed erroneously to\n");
  printf_filtered ("authors of previous versions.\n");
  printf_filtered ("\n");
  printf_filtered ("  Some devices are designed to deny users access to install or run\n");
  printf_filtered ("modified versions of the software inside them, although the manufacturer\n");
  printf_filtered ("can do so.  This is fundamentally incompatible with the aim of\n");
  printf_filtered ("protecting users' freedom to change the software.  The systematic\n");
  printf_filtered ("pattern of such abuse occurs in the area of products for individuals to\n");
  printf_filtered ("use, which is precisely where it is most unacceptable.  Therefore, we\n");
  printf_filtered ("have designed this version of the GPL to prohibit the practice for those\n");
  printf_filtered ("products.  If such problems arise substantially in other domains, we\n");
  printf_filtered ("stand ready to extend this provision to those domains in future versions\n");
  printf_filtered ("of the GPL, as needed to protect the freedom of users.\n");
  printf_filtered ("\n");
  printf_filtered ("  Finally, every program is threatened constantly by software patents.\n");
  printf_filtered ("States should not allow patents to restrict development and use of\n");
  printf_filtered ("software on general-purpose computers, but in those that do, we wish to\n");
  printf_filtered ("avoid the special danger that patents applied to a free program could\n");
  printf_filtered ("make it effectively proprietary.  To prevent this, the GPL assures that\n");
  printf_filtered ("patents cannot be used to render the program non-free.\n");
  printf_filtered ("\n");
  printf_filtered ("  The precise terms and conditions for copying, distribution and\n");
  printf_filtered ("modification follow.\n");
  printf_filtered ("\n");
  printf_filtered ("                       TERMS AND CONDITIONS\n");
  printf_filtered ("\n");
  printf_filtered ("  0. Definitions.\n");
  printf_filtered ("\n");
  printf_filtered ("  \"This License\" refers to version 3 of the GNU General Public License.\n");
  printf_filtered ("\n");
  printf_filtered ("  \"Copyright\" also means copyright-like laws that apply to other kinds of\n");
  printf_filtered ("works, such as semiconductor masks.\n");
  printf_filtered ("\n");
  printf_filtered ("  \"The Program\" refers to any copyrightable work licensed under this\n");
  printf_filtered ("License.  Each licensee is addressed as \"you\".  \"Licensees\" and\n");
  printf_filtered ("\"recipients\" may be individuals or organizations.\n");
  printf_filtered ("\n");
  printf_filtered ("  To \"modify\" a work means to copy from or adapt all or part of the work\n");
  printf_filtered ("in a fashion requiring copyright permission, other than the making of an\n");
  printf_filtered ("exact copy.  The resulting work is called a \"modified version\" of the\n");
  printf_filtered ("earlier work or a work \"based on\" the earlier work.\n");
  printf_filtered ("\n");
  printf_filtered ("  A \"covered work\" means either the unmodified Program or a work based\n");
  printf_filtered ("on the Program.\n");
  printf_filtered ("\n");
  printf_filtered ("  To \"propagate\" a work means to do anything with it that, without\n");
  printf_filtered ("permission, would make you directly or secondarily liable for\n");
  printf_filtered ("infringement under applicable copyright law, except executing it on a\n");
  printf_filtered ("computer or modifying a private copy.  Propagation includes copying,\n");
  printf_filtered ("distribution (with or without modification), making available to the\n");
  printf_filtered ("public, and in some countries other activities as well.\n");
  printf_filtered ("\n");
  printf_filtered ("  To \"convey\" a work means any kind of propagation that enables other\n");
  printf_filtered ("parties to make or receive copies.  Mere interaction with a user through\n");
  printf_filtered ("a computer network, with no transfer of a copy, is not conveying.\n");
  printf_filtered ("\n");
  printf_filtered ("  An interactive user interface displays \"Appropriate Legal Notices\"\n");
  printf_filtered ("to the extent that it includes a convenient and prominently visible\n");
  printf_filtered ("feature that (1) displays an appropriate copyright notice, and (2)\n");
  printf_filtered ("tells the user that there is no warranty for the work (except to the\n");
  printf_filtered ("extent that warranties are provided), that licensees may convey the\n");
  printf_filtered ("work under this License, and how to view a copy of this License.  If\n");
  printf_filtered ("the interface presents a list of user commands or options, such as a\n");
  printf_filtered ("menu, a prominent item in the list meets this criterion.\n");
  printf_filtered ("\n");
  printf_filtered ("  1. Source Code.\n");
  printf_filtered ("\n");
  printf_filtered ("  The \"source code\" for a work means the preferred form of the work\n");
  printf_filtered ("for making modifications to it.  \"Object code\" means any non-source\n");
  printf_filtered ("form of a work.\n");
  printf_filtered ("\n");
  printf_filtered ("  A \"Standard Interface\" means an interface that either is an official\n");
  printf_filtered ("standard defined by a recognized standards body, or, in the case of\n");
  printf_filtered ("interfaces specified for a particular programming language, one that\n");
  printf_filtered ("is widely used among developers working in that language.\n");
  printf_filtered ("\n");
  printf_filtered ("  The \"System Libraries\" of an executable work include anything, other\n");
  printf_filtered ("than the work as a whole, that (a) is included in the normal form of\n");
  printf_filtered ("packaging a Major Component, but which is not part of that Major\n");
  printf_filtered ("Component, and (b) serves only to enable use of the work with that\n");
  printf_filtered ("Major Component, or to implement a Standard Interface for which an\n");
  printf_filtered ("implementation is available to the public in source code form.  A\n");
  printf_filtered ("\"Major Component\", in this context, means a major essential component\n");
  printf_filtered ("(kernel, window system, and so on) of the specific operating system\n");
  printf_filtered ("(if any) on which the executable work runs, or a compiler used to\n");
  printf_filtered ("produce the work, or an object code interpreter used to run it.\n");
  printf_filtered ("\n");
  printf_filtered ("  The \"Corresponding Source\" for a work in object code form means all\n");
  printf_filtered ("the source code needed to generate, install, and (for an executable\n");
  printf_filtered ("work) run the object code and to modify the work, including scripts to\n");
  printf_filtered ("control those activities.  However, it does not include the work's\n");
  printf_filtered ("System Libraries, or general-purpose tools or generally available free\n");
  printf_filtered ("programs which are used unmodified in performing those activities but\n");
  printf_filtered ("which are not part of the work.  For example, Corresponding Source\n");
  printf_filtered ("includes interface definition files associated with source files for\n");
  printf_filtered ("the work, and the source code for shared libraries and dynamically\n");
  printf_filtered ("linked subprograms that the work is specifically designed to require,\n");
  printf_filtered ("such as by intimate data communication or control flow between those\n");
  printf_filtered ("subprograms and other parts of the work.\n");
  printf_filtered ("\n");
  printf_filtered ("  The Corresponding Source need not include anything that users\n");
  printf_filtered ("can regenerate automatically from other parts of the Corresponding\n");
  printf_filtered ("Source.\n");
  printf_filtered ("\n");
  printf_filtered ("  The Corresponding Source for a work in source code form is that\n");
  printf_filtered ("same work.\n");
  printf_filtered ("\n");
  printf_filtered ("  2. Basic Permissions.\n");
  printf_filtered ("\n");
  printf_filtered ("  All rights granted under this License are granted for the term of\n");
  printf_filtered ("copyright on the Program, and are irrevocable provided the stated\n");
  printf_filtered ("conditions are met.  This License explicitly affirms your unlimited\n");
  printf_filtered ("permission to run the unmodified Program.  The output from running a\n");
  printf_filtered ("covered work is covered by this License only if the output, given its\n");
  printf_filtered ("content, constitutes a covered work.  This License acknowledges your\n");
  printf_filtered ("rights of fair use or other equivalent, as provided by copyright law.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may make, run and propagate covered works that you do not\n");
  printf_filtered ("convey, without conditions so long as your license otherwise remains\n");
  printf_filtered ("in force.  You may convey covered works to others for the sole purpose\n");
  printf_filtered ("of having them make modifications exclusively for you, or provide you\n");
  printf_filtered ("with facilities for running those works, provided that you comply with\n");
  printf_filtered ("the terms of this License in conveying all material for which you do\n");
  printf_filtered ("not control copyright.  Those thus making or running the covered works\n");
  printf_filtered ("for you must do so exclusively on your behalf, under your direction\n");
  printf_filtered ("and control, on terms that prohibit them from making any copies of\n");
  printf_filtered ("your copyrighted material outside their relationship with you.\n");
  printf_filtered ("\n");
  printf_filtered ("  Conveying under any other circumstances is permitted solely under\n");
  printf_filtered ("the conditions stated below.  Sublicensing is not allowed; section 10\n");
  printf_filtered ("makes it unnecessary.\n");
  printf_filtered ("\n");
  printf_filtered ("  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n");
  printf_filtered ("\n");
  printf_filtered ("  No covered work shall be deemed part of an effective technological\n");
  printf_filtered ("measure under any applicable law fulfilling obligations under article\n");
  printf_filtered ("11 of the WIPO copyright treaty adopted on 20 December 1996, or\n");
  printf_filtered ("similar laws prohibiting or restricting circumvention of such\n");
  printf_filtered ("measures.\n");
  printf_filtered ("\n");
  printf_filtered ("  When you convey a covered work, you waive any legal power to forbid\n");
  printf_filtered ("circumvention of technological measures to the extent such circumvention\n");
  printf_filtered ("is effected by exercising rights under this License with respect to\n");
  printf_filtered ("the covered work, and you disclaim any intention to limit operation or\n");
  printf_filtered ("modification of the work as a means of enforcing, against the work's\n");
  printf_filtered ("users, your or third parties' legal rights to forbid circumvention of\n");
  printf_filtered ("technological measures.\n");
  printf_filtered ("\n");
  printf_filtered ("  4. Conveying Verbatim Copies.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may convey verbatim copies of the Program's source code as you\n");
  printf_filtered ("receive it, in any medium, provided that you conspicuously and\n");
  printf_filtered ("appropriately publish on each copy an appropriate copyright notice;\n");
  printf_filtered ("keep intact all notices stating that this License and any\n");
  printf_filtered ("non-permissive terms added in accord with section 7 apply to the code;\n");
  printf_filtered ("keep intact all notices of the absence of any warranty; and give all\n");
  printf_filtered ("recipients a copy of this License along with the Program.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may charge any price or no price for each copy that you convey,\n");
  printf_filtered ("and you may offer support or warranty protection for a fee.\n");
  printf_filtered ("\n");
  printf_filtered ("  5. Conveying Modified Source Versions.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may convey a work based on the Program, or the modifications to\n");
  printf_filtered ("produce it from the Program, in the form of source code under the\n");
  printf_filtered ("terms of section 4, provided that you also meet all of these conditions:\n");
  printf_filtered ("\n");
  printf_filtered ("    a) The work must carry prominent notices stating that you modified\n");
  printf_filtered ("    it, and giving a relevant date.\n");
  printf_filtered ("\n");
  printf_filtered ("    b) The work must carry prominent notices stating that it is\n");
  printf_filtered ("    released under this License and any conditions added under section\n");
  printf_filtered ("    7.  This requirement modifies the requirement in section 4 to\n");
  printf_filtered ("    \"keep intact all notices\".\n");
  printf_filtered ("\n");
  printf_filtered ("    c) You must license the entire work, as a whole, under this\n");
  printf_filtered ("    License to anyone who comes into possession of a copy.  This\n");
  printf_filtered ("    License will therefore apply, along with any applicable section 7\n");
  printf_filtered ("    additional terms, to the whole of the work, and all its parts,\n");
  printf_filtered ("    regardless of how they are packaged.  This License gives no\n");
  printf_filtered ("    permission to license the work in any other way, but it does not\n");
  printf_filtered ("    invalidate such permission if you have separately received it.\n");
  printf_filtered ("\n");
  printf_filtered ("    d) If the work has interactive user interfaces, each must display\n");
  printf_filtered ("    Appropriate Legal Notices; however, if the Program has interactive\n");
  printf_filtered ("    interfaces that do not display Appropriate Legal Notices, your\n");
  printf_filtered ("    work need not make them do so.\n");
  printf_filtered ("\n");
  printf_filtered ("  A compilation of a covered work with other separate and independent\n");
  printf_filtered ("works, which are not by their nature extensions of the covered work,\n");
  printf_filtered ("and which are not combined with it such as to form a larger program,\n");
  printf_filtered ("in or on a volume of a storage or distribution medium, is called an\n");
  printf_filtered ("\"aggregate\" if the compilation and its resulting copyright are not\n");
  printf_filtered ("used to limit the access or legal rights of the compilation's users\n");
  printf_filtered ("beyond what the individual works permit.  Inclusion of a covered work\n");
  printf_filtered ("in an aggregate does not cause this License to apply to the other\n");
  printf_filtered ("parts of the aggregate.\n");
  printf_filtered ("\n");
  printf_filtered ("  6. Conveying Non-Source Forms.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may convey a covered work in object code form under the terms\n");
  printf_filtered ("of sections 4 and 5, provided that you also convey the\n");
  printf_filtered ("machine-readable Corresponding Source under the terms of this License,\n");
  printf_filtered ("in one of these ways:\n");
  printf_filtered ("\n");
  printf_filtered ("    a) Convey the object code in, or embodied in, a physical product\n");
  printf_filtered ("    (including a physical distribution medium), accompanied by the\n");
  printf_filtered ("    Corresponding Source fixed on a durable physical medium\n");
  printf_filtered ("    customarily used for software interchange.\n");
  printf_filtered ("\n");
  printf_filtered ("    b) Convey the object code in, or embodied in, a physical product\n");
  printf_filtered ("    (including a physical distribution medium), accompanied by a\n");
  printf_filtered ("    written offer, valid for at least three years and valid for as\n");
  printf_filtered ("    long as you offer spare parts or customer support for that product\n");
  printf_filtered ("    model, to give anyone who possesses the object code either (1) a\n");
  printf_filtered ("    copy of the Corresponding Source for all the software in the\n");
  printf_filtered ("    product that is covered by this License, on a durable physical\n");
  printf_filtered ("    medium customarily used for software interchange, for a price no\n");
  printf_filtered ("    more than your reasonable cost of physically performing this\n");
  printf_filtered ("    conveying of source, or (2) access to copy the\n");
  printf_filtered ("    Corresponding Source from a network server at no charge.\n");
  printf_filtered ("\n");
  printf_filtered ("    c) Convey individual copies of the object code with a copy of the\n");
  printf_filtered ("    written offer to provide the Corresponding Source.  This\n");
  printf_filtered ("    alternative is allowed only occasionally and noncommercially, and\n");
  printf_filtered ("    only if you received the object code with such an offer, in accord\n");
  printf_filtered ("    with subsection 6b.\n");
  printf_filtered ("\n");
  printf_filtered ("    d) Convey the object code by offering access from a designated\n");
  printf_filtered ("    place (gratis or for a charge), and offer equivalent access to the\n");
  printf_filtered ("    Corresponding Source in the same way through the same place at no\n");
  printf_filtered ("    further charge.  You need not require recipients to copy the\n");
  printf_filtered ("    Corresponding Source along with the object code.  If the place to\n");
  printf_filtered ("    copy the object code is a network server, the Corresponding Source\n");
  printf_filtered ("    may be on a different server (operated by you or a third party)\n");
  printf_filtered ("    that supports equivalent copying facilities, provided you maintain\n");
  printf_filtered ("    clear directions next to the object code saying where to find the\n");
  printf_filtered ("    Corresponding Source.  Regardless of what server hosts the\n");
  printf_filtered ("    Corresponding Source, you remain obligated to ensure that it is\n");
  printf_filtered ("    available for as long as needed to satisfy these requirements.\n");
  printf_filtered ("\n");
  printf_filtered ("    e) Convey the object code using peer-to-peer transmission, provided\n");
  printf_filtered ("    you inform other peers where the object code and Corresponding\n");
  printf_filtered ("    Source of the work are being offered to the general public at no\n");
  printf_filtered ("    charge under subsection 6d.\n");
  printf_filtered ("\n");
  printf_filtered ("  A separable portion of the object code, whose source code is excluded\n");
  printf_filtered ("from the Corresponding Source as a System Library, need not be\n");
  printf_filtered ("included in conveying the object code work.\n");
  printf_filtered ("\n");
  printf_filtered ("  A \"User Product\" is either (1) a \"consumer product\", which means any\n");
  printf_filtered ("tangible personal property which is normally used for personal, family,\n");
  printf_filtered ("or household purposes, or (2) anything designed or sold for incorporation\n");
  printf_filtered ("into a dwelling.  In determining whether a product is a consumer product,\n");
  printf_filtered ("doubtful cases shall be resolved in favor of coverage.  For a particular\n");
  printf_filtered ("product received by a particular user, \"normally used\" refers to a\n");
  printf_filtered ("typical or common use of that class of product, regardless of the status\n");
  printf_filtered ("of the particular user or of the way in which the particular user\n");
  printf_filtered ("actually uses, or expects or is expected to use, the product.  A product\n");
  printf_filtered ("is a consumer product regardless of whether the product has substantial\n");
  printf_filtered ("commercial, industrial or non-consumer uses, unless such uses represent\n");
  printf_filtered ("the only significant mode of use of the product.\n");
  printf_filtered ("\n");
  printf_filtered ("  \"Installation Information\" for a User Product means any methods,\n");
  printf_filtered ("procedures, authorization keys, or other information required to install\n");
  printf_filtered ("and execute modified versions of a covered work in that User Product from\n");
  printf_filtered ("a modified version of its Corresponding Source.  The information must\n");
  printf_filtered ("suffice to ensure that the continued functioning of the modified object\n");
  printf_filtered ("code is in no case prevented or interfered with solely because\n");
  printf_filtered ("modification has been made.\n");
  printf_filtered ("\n");
  printf_filtered ("  If you convey an object code work under this section in, or with, or\n");
  printf_filtered ("specifically for use in, a User Product, and the conveying occurs as\n");
  printf_filtered ("part of a transaction in which the right of possession and use of the\n");
  printf_filtered ("User Product is transferred to the recipient in perpetuity or for a\n");
  printf_filtered ("fixed term (regardless of how the transaction is characterized), the\n");
  printf_filtered ("Corresponding Source conveyed under this section must be accompanied\n");
  printf_filtered ("by the Installation Information.  But this requirement does not apply\n");
  printf_filtered ("if neither you nor any third party retains the ability to install\n");
  printf_filtered ("modified object code on the User Product (for example, the work has\n");
  printf_filtered ("been installed in ROM).\n");
  printf_filtered ("\n");
  printf_filtered ("  The requirement to provide Installation Information does not include a\n");
  printf_filtered ("requirement to continue to provide support service, warranty, or updates\n");
  printf_filtered ("for a work that has been modified or installed by the recipient, or for\n");
  printf_filtered ("the User Product in which it has been modified or installed.  Access to a\n");
  printf_filtered ("network may be denied when the modification itself materially and\n");
  printf_filtered ("adversely affects the operation of the network or violates the rules and\n");
  printf_filtered ("protocols for communication across the network.\n");
  printf_filtered ("\n");
  printf_filtered ("  Corresponding Source conveyed, and Installation Information provided,\n");
  printf_filtered ("in accord with this section must be in a format that is publicly\n");
  printf_filtered ("documented (and with an implementation available to the public in\n");
  printf_filtered ("source code form), and must require no special password or key for\n");
  printf_filtered ("unpacking, reading or copying.\n");
  printf_filtered ("\n");
  printf_filtered ("  7. Additional Terms.\n");
  printf_filtered ("\n");
  printf_filtered ("  \"Additional permissions\" are terms that supplement the terms of this\n");
  printf_filtered ("License by making exceptions from one or more of its conditions.\n");
  printf_filtered ("Additional permissions that are applicable to the entire Program shall\n");
  printf_filtered ("be treated as though they were included in this License, to the extent\n");
  printf_filtered ("that they are valid under applicable law.  If additional permissions\n");
  printf_filtered ("apply only to part of the Program, that part may be used separately\n");
  printf_filtered ("under those permissions, but the entire Program remains governed by\n");
  printf_filtered ("this License without regard to the additional permissions.\n");
  printf_filtered ("\n");
  printf_filtered ("  When you convey a copy of a covered work, you may at your option\n");
  printf_filtered ("remove any additional permissions from that copy, or from any part of\n");
  printf_filtered ("it.  (Additional permissions may be written to require their own\n");
  printf_filtered ("removal in certain cases when you modify the work.)  You may place\n");
  printf_filtered ("additional permissions on material, added by you to a covered work,\n");
  printf_filtered ("for which you have or can give appropriate copyright permission.\n");
  printf_filtered ("\n");
  printf_filtered ("  Notwithstanding any other provision of this License, for material you\n");
  printf_filtered ("add to a covered work, you may (if authorized by the copyright holders of\n");
  printf_filtered ("that material) supplement the terms of this License with terms:\n");
  printf_filtered ("\n");
  printf_filtered ("    a) Disclaiming warranty or limiting liability differently from the\n");
  printf_filtered ("    terms of sections 15 and 16 of this License; or\n");
  printf_filtered ("\n");
  printf_filtered ("    b) Requiring preservation of specified reasonable legal notices or\n");
  printf_filtered ("    author attributions in that material or in the Appropriate Legal\n");
  printf_filtered ("    Notices displayed by works containing it; or\n");
  printf_filtered ("\n");
  printf_filtered ("    c) Prohibiting misrepresentation of the origin of that material, or\n");
  printf_filtered ("    requiring that modified versions of such material be marked in\n");
  printf_filtered ("    reasonable ways as different from the original version; or\n");
  printf_filtered ("\n");
  printf_filtered ("    d) Limiting the use for publicity purposes of names of licensors or\n");
  printf_filtered ("    authors of the material; or\n");
  printf_filtered ("\n");
  printf_filtered ("    e) Declining to grant rights under trademark law for use of some\n");
  printf_filtered ("    trade names, trademarks, or service marks; or\n");
  printf_filtered ("\n");
  printf_filtered ("    f) Requiring indemnification of licensors and authors of that\n");
  printf_filtered ("    material by anyone who conveys the material (or modified versions of\n");
  printf_filtered ("    it) with contractual assumptions of liability to the recipient, for\n");
  printf_filtered ("    any liability that these contractual assumptions directly impose on\n");
  printf_filtered ("    those licensors and authors.\n");
  printf_filtered ("\n");
  printf_filtered ("  All other non-permissive additional terms are considered \"further\n");
  printf_filtered ("restrictions\" within the meaning of section 10.  If the Program as you\n");
  printf_filtered ("received it, or any part of it, contains a notice stating that it is\n");
  printf_filtered ("governed by this License along with a term that is a further\n");
  printf_filtered ("restriction, you may remove that term.  If a license document contains\n");
  printf_filtered ("a further restriction but permits relicensing or conveying under this\n");
  printf_filtered ("License, you may add to a covered work material governed by the terms\n");
  printf_filtered ("of that license document, provided that the further restriction does\n");
  printf_filtered ("not survive such relicensing or conveying.\n");
  printf_filtered ("\n");
  printf_filtered ("  If you add terms to a covered work in accord with this section, you\n");
  printf_filtered ("must place, in the relevant source files, a statement of the\n");
  printf_filtered ("additional terms that apply to those files, or a notice indicating\n");
  printf_filtered ("where to find the applicable terms.\n");
  printf_filtered ("\n");
  printf_filtered ("  Additional terms, permissive or non-permissive, may be stated in the\n");
  printf_filtered ("form of a separately written license, or stated as exceptions;\n");
  printf_filtered ("the above requirements apply either way.\n");
  printf_filtered ("\n");
  printf_filtered ("  8. Termination.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may not propagate or modify a covered work except as expressly\n");
  printf_filtered ("provided under this License.  Any attempt otherwise to propagate or\n");
  printf_filtered ("modify it is void, and will automatically terminate your rights under\n");
  printf_filtered ("this License (including any patent licenses granted under the third\n");
  printf_filtered ("paragraph of section 11).\n");
  printf_filtered ("\n");
  printf_filtered ("  However, if you cease all violation of this License, then your\n");
  printf_filtered ("license from a particular copyright holder is reinstated (a)\n");
  printf_filtered ("provisionally, unless and until the copyright holder explicitly and\n");
  printf_filtered ("finally terminates your license, and (b) permanently, if the copyright\n");
  printf_filtered ("holder fails to notify you of the violation by some reasonable means\n");
  printf_filtered ("prior to 60 days after the cessation.\n");
  printf_filtered ("\n");
  printf_filtered ("  Moreover, your license from a particular copyright holder is\n");
  printf_filtered ("reinstated permanently if the copyright holder notifies you of the\n");
  printf_filtered ("violation by some reasonable means, this is the first time you have\n");
  printf_filtered ("received notice of violation of this License (for any work) from that\n");
  printf_filtered ("copyright holder, and you cure the violation prior to 30 days after\n");
  printf_filtered ("your receipt of the notice.\n");
  printf_filtered ("\n");
  printf_filtered ("  Termination of your rights under this section does not terminate the\n");
  printf_filtered ("licenses of parties who have received copies or rights from you under\n");
  printf_filtered ("this License.  If your rights have been terminated and not permanently\n");
  printf_filtered ("reinstated, you do not qualify to receive new licenses for the same\n");
  printf_filtered ("material under section 10.\n");
  printf_filtered ("\n");
  printf_filtered ("  9. Acceptance Not Required for Having Copies.\n");
  printf_filtered ("\n");
  printf_filtered ("  You are not required to accept this License in order to receive or\n");
  printf_filtered ("run a copy of the Program.  Ancillary propagation of a covered work\n");
  printf_filtered ("occurring solely as a consequence of using peer-to-peer transmission\n");
  printf_filtered ("to receive a copy likewise does not require acceptance.  However,\n");
  printf_filtered ("nothing other than this License grants you permission to propagate or\n");
  printf_filtered ("modify any covered work.  These actions infringe copyright if you do\n");
  printf_filtered ("not accept this License.  Therefore, by modifying or propagating a\n");
  printf_filtered ("covered work, you indicate your acceptance of this License to do so.\n");
  printf_filtered ("\n");
  printf_filtered ("  10. Automatic Licensing of Downstream Recipients.\n");
  printf_filtered ("\n");
  printf_filtered ("  Each time you convey a covered work, the recipient automatically\n");
  printf_filtered ("receives a license from the original licensors, to run, modify and\n");
  printf_filtered ("propagate that work, subject to this License.  You are not responsible\n");
  printf_filtered ("for enforcing compliance by third parties with this License.\n");
  printf_filtered ("\n");
  printf_filtered ("  An \"entity transaction\" is a transaction transferring control of an\n");
  printf_filtered ("organization, or substantially all assets of one, or subdividing an\n");
  printf_filtered ("organization, or merging organizations.  If propagation of a covered\n");
  printf_filtered ("work results from an entity transaction, each party to that\n");
  printf_filtered ("transaction who receives a copy of the work also receives whatever\n");
  printf_filtered ("licenses to the work the party's predecessor in interest had or could\n");
  printf_filtered ("give under the previous paragraph, plus a right to possession of the\n");
  printf_filtered ("Corresponding Source of the work from the predecessor in interest, if\n");
  printf_filtered ("the predecessor has it or can get it with reasonable efforts.\n");
  printf_filtered ("\n");
  printf_filtered ("  You may not impose any further restrictions on the exercise of the\n");
  printf_filtered ("rights granted or affirmed under this License.  For example, you may\n");
  printf_filtered ("not impose a license fee, royalty, or other charge for exercise of\n");
  printf_filtered ("rights granted under this License, and you may not initiate litigation\n");
  printf_filtered ("(including a cross-claim or counterclaim in a lawsuit) alleging that\n");
  printf_filtered ("any patent claim is infringed by making, using, selling, offering for\n");
  printf_filtered ("sale, or importing the Program or any portion of it.\n");
  printf_filtered ("\n");
  printf_filtered ("  11. Patents.\n");
  printf_filtered ("\n");
  printf_filtered ("  A \"contributor\" is a copyright holder who authorizes use under this\n");
  printf_filtered ("License of the Program or a work on which the Program is based.  The\n");
  printf_filtered ("work thus licensed is called the contributor's \"contributor version\".\n");
  printf_filtered ("\n");
  printf_filtered ("  A contributor's \"essential patent claims\" are all patent claims\n");
  printf_filtered ("owned or controlled by the contributor, whether already acquired or\n");
  printf_filtered ("hereafter acquired, that would be infringed by some manner, permitted\n");
  printf_filtered ("by this License, of making, using, or selling its contributor version,\n");
  printf_filtered ("but do not include claims that would be infringed only as a\n");
  printf_filtered ("consequence of further modification of the contributor version.  For\n");
  printf_filtered ("purposes of this definition, \"control\" includes the right to grant\n");
  printf_filtered ("patent sublicenses in a manner consistent with the requirements of\n");
  printf_filtered ("this License.\n");
  printf_filtered ("\n");
  printf_filtered ("  Each contributor grants you a non-exclusive, worldwide, royalty-free\n");
  printf_filtered ("patent license under the contributor's essential patent claims, to\n");
  printf_filtered ("make, use, sell, offer for sale, import and otherwise run, modify and\n");
  printf_filtered ("propagate the contents of its contributor version.\n");
  printf_filtered ("\n");
  printf_filtered ("  In the following three paragraphs, a \"patent license\" is any express\n");
  printf_filtered ("agreement or commitment, however denominated, not to enforce a patent\n");
  printf_filtered ("(such as an express permission to practice a patent or covenant not to\n");
  printf_filtered ("sue for patent infringement).  To \"grant\" such a patent license to a\n");
  printf_filtered ("party means to make such an agreement or commitment not to enforce a\n");
  printf_filtered ("patent against the party.\n");
  printf_filtered ("\n");
  printf_filtered ("  If you convey a covered work, knowingly relying on a patent license,\n");
  printf_filtered ("and the Corresponding Source of the work is not available for anyone\n");
  printf_filtered ("to copy, free of charge and under the terms of this License, through a\n");
  printf_filtered ("publicly available network server or other readily accessible means,\n");
  printf_filtered ("then you must either (1) cause the Corresponding Source to be so\n");
  printf_filtered ("available, or (2) arrange to deprive yourself of the benefit of the\n");
  printf_filtered ("patent license for this particular work, or (3) arrange, in a manner\n");
  printf_filtered ("consistent with the requirements of this License, to extend the patent\n");
  printf_filtered ("license to downstream recipients.  \"Knowingly relying\" means you have\n");
  printf_filtered ("actual knowledge that, but for the patent license, your conveying the\n");
  printf_filtered ("covered work in a country, or your recipient's use of the covered work\n");
  printf_filtered ("in a country, would infringe one or more identifiable patents in that\n");
  printf_filtered ("country that you have reason to believe are valid.\n");
  printf_filtered ("\n");
  printf_filtered ("  If, pursuant to or in connection with a single transaction or\n");
  printf_filtered ("arrangement, you convey, or propagate by procuring conveyance of, a\n");
  printf_filtered ("covered work, and grant a patent license to some of the parties\n");
  printf_filtered ("receiving the covered work authorizing them to use, propagate, modify\n");
  printf_filtered ("or convey a specific copy of the covered work, then the patent license\n");
  printf_filtered ("you grant is automatically extended to all recipients of the covered\n");
  printf_filtered ("work and works based on it.\n");
  printf_filtered ("\n");
  printf_filtered ("  A patent license is \"discriminatory\" if it does not include within\n");
  printf_filtered ("the scope of its coverage, prohibits the exercise of, or is\n");
  printf_filtered ("conditioned on the non-exercise of one or more of the rights that are\n");
  printf_filtered ("specifically granted under this License.  You may not convey a covered\n");
  printf_filtered ("work if you are a party to an arrangement with a third party that is\n");
  printf_filtered ("in the business of distributing software, under which you make payment\n");
  printf_filtered ("to the third party based on the extent of your activity of conveying\n");
  printf_filtered ("the work, and under which the third party grants, to any of the\n");
  printf_filtered ("parties who would receive the covered work from you, a discriminatory\n");
  printf_filtered ("patent license (a) in connection with copies of the covered work\n");
  printf_filtered ("conveyed by you (or copies made from those copies), or (b) primarily\n");
  printf_filtered ("for and in connection with specific products or compilations that\n");
  printf_filtered ("contain the covered work, unless you entered into that arrangement,\n");
  printf_filtered ("or that patent license was granted, prior to 28 March 2007.\n");
  printf_filtered ("\n");
  printf_filtered ("  Nothing in this License shall be construed as excluding or limiting\n");
  printf_filtered ("any implied license or other defenses to infringement that may\n");
  printf_filtered ("otherwise be available to you under applicable patent law.\n");
  printf_filtered ("\n");
  printf_filtered ("  12. No Surrender of Others' Freedom.\n");
  printf_filtered ("\n");
  printf_filtered ("  If conditions are imposed on you (whether by court order, agreement or\n");
  printf_filtered ("otherwise) that contradict the conditions of this License, they do not\n");
  printf_filtered ("excuse you from the conditions of this License.  If you cannot convey a\n");
  printf_filtered ("covered work so as to satisfy simultaneously your obligations under this\n");
  printf_filtered ("License and any other pertinent obligations, then as a consequence you may\n");
  printf_filtered ("not convey it at all.  For example, if you agree to terms that obligate you\n");
  printf_filtered ("to collect a royalty for further conveying from those to whom you convey\n");
  printf_filtered ("the Program, the only way you could satisfy both those terms and this\n");
  printf_filtered ("License would be to refrain entirely from conveying the Program.\n");
  printf_filtered ("\n");
  printf_filtered ("  13. Use with the GNU Affero General Public License.\n");
  printf_filtered ("\n");
  printf_filtered ("  Notwithstanding any other provision of this License, you have\n");
  printf_filtered ("permission to link or combine any covered work with a work licensed\n");
  printf_filtered ("under version 3 of the GNU Affero General Public License into a single\n");
  printf_filtered ("combined work, and to convey the resulting work.  The terms of this\n");
  printf_filtered ("License will continue to apply to the part which is the covered work,\n");
  printf_filtered ("but the special requirements of the GNU Affero General Public License,\n");
  printf_filtered ("section 13, concerning interaction through a network will apply to the\n");
  printf_filtered ("combination as such.\n");
  printf_filtered ("\n");
  printf_filtered ("  14. Revised Versions of this License.\n");
  printf_filtered ("\n");
  printf_filtered ("  The Free Software Foundation may publish revised and/or new versions of\n");
  printf_filtered ("the GNU General Public License from time to time.  Such new versions will\n");
  printf_filtered ("be similar in spirit to the present version, but may differ in detail to\n");
  printf_filtered ("address new problems or concerns.\n");
  printf_filtered ("\n");
  printf_filtered ("  Each version is given a distinguishing version number.  If the\n");
  printf_filtered ("Program specifies that a certain numbered version of the GNU General\n");
  printf_filtered ("Public License \"or any later version\" applies to it, you have the\n");
  printf_filtered ("option of following the terms and conditions either of that numbered\n");
  printf_filtered ("version or of any later version published by the Free Software\n");
  printf_filtered ("Foundation.  If the Program does not specify a version number of the\n");
  printf_filtered ("GNU General Public License, you may choose any version ever published\n");
  printf_filtered ("by the Free Software Foundation.\n");
  printf_filtered ("\n");
  printf_filtered ("  If the Program specifies that a proxy can decide which future\n");
  printf_filtered ("versions of the GNU General Public License can be used, that proxy's\n");
  printf_filtered ("public statement of acceptance of a version permanently authorizes you\n");
  printf_filtered ("to choose that version for the Program.\n");
  printf_filtered ("\n");
  printf_filtered ("  Later license versions may give you additional or different\n");
  printf_filtered ("permissions.  However, no additional obligations are imposed on any\n");
  printf_filtered ("author or copyright holder as a result of your choosing to follow a\n");
  printf_filtered ("later version.\n");
  printf_filtered ("\n");
}

static void
show_warranty_command (const char *ignore, int from_tty)
{
  printf_filtered ("  15. Disclaimer of Warranty.\n");
  printf_filtered ("\n");
  printf_filtered ("  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n");
  printf_filtered ("APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n");
  printf_filtered ("HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n");
  printf_filtered ("OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n");
  printf_filtered ("THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n");
  printf_filtered ("PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n");
  printf_filtered ("IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n");
  printf_filtered ("ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n");
  printf_filtered ("\n");
  printf_filtered ("  16. Limitation of Liability.\n");
  printf_filtered ("\n");
  printf_filtered ("  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n");
  printf_filtered ("WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n");
  printf_filtered ("THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n");
  printf_filtered ("GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n");
  printf_filtered ("USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n");
  printf_filtered ("DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n");
  printf_filtered ("PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n");
  printf_filtered ("EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n");
  printf_filtered ("SUCH DAMAGES.\n");
  printf_filtered ("\n");
  printf_filtered ("  17. Interpretation of Sections 15 and 16.\n");
  printf_filtered ("\n");
  printf_filtered ("  If the disclaimer of warranty and limitation of liability provided\n");
  printf_filtered ("above cannot be given local legal effect according to their terms,\n");
  printf_filtered ("reviewing courts shall apply local law that most closely approximates\n");
  printf_filtered ("an absolute waiver of all civil liability in connection with the\n");
  printf_filtered ("Program, unless a warranty or assumption of liability accompanies a\n");
  printf_filtered ("copy of the Program in return for a fee.\n");
  printf_filtered ("\n");
}

void _initialize_copying ();
void
_initialize_copying ()
{
  add_cmd ("copying", no_set_class, show_copying_command,
	   _("Conditions for redistributing copies of GDB."),
	   &showlist);
  add_cmd ("warranty", no_set_class, show_warranty_command,
	   _("Various kinds of warranty you do not have."),
	   &showlist);

  /* For old-timers, allow "info copying", etc.  */
  add_info ("copying", show_copying_command,
	    _("Conditions for redistributing copies of GDB."));
  add_info ("warranty", show_warranty_command,
	    _("Various kinds of warranty you do not have."));
}
