Browse Source

cp from

haojunyu 1 year ago
100 changed files with 40576 additions and 0 deletions
  1. 2 0
  2. 30 0
  3. 3 0
  4. 5 0
  5. 38 0
  6. 674 0
  7. 11398 0
  8. 133 0
  9. 2281 0
  10. 98 0
  11. 258 0
  12. 59 0
  13. 102 0
  14. 1090 0
  15. 276 0
  16. 29 0
  17. 16 0
  18. 62 0
  19. 29 0
  20. 66 0
  21. 33 0
  22. 279 0
  23. 248 0
  24. 289 0
  25. 322 0
  26. 38 0
  27. 94 0
  28. 505 0
  29. 1209 0
  30. 5786 0
  31. 519 0
  32. 701 0
  33. 7 0
  34. 54 0
  35. 695 0
  36. 403 0
  37. 2669 0
  38. 32 0
  39. 314 0
  40. 702 0
  41. 1556 0
  42. 3397 0
  43. 1371 0
  44. 1335 0
  45. 37 0
  46. 203 0
  47. 31 0
  48. 9 0
  49. 270 0
  50. 107 0
  51. 305 0
  52. 45 0
  53. 14 0
  54. 11 0
  55. 1 0
  56. 1 0
  57. 7 0
  58. 4 0
  59. 9 0
  60. 1 0
  61. 9 0
  62. 1 0
  63. 8 0
  64. 1 0
  65. 8 0
  66. 1 0
  67. 7 0
  68. 1 0
  69. 4 0
  70. 1 0
  71. 4 0
  72. 1 0
  73. 4 0
  74. 1 0
  75. 3 0
  76. 1 0
  77. 8 0
  78. 2 0
  79. 11 0
  80. 58 0
  81. 24 0
  82. 7 0
  83. 1 0
  84. 20 0
  85. 20 0
  86. 21 0
  87. 1 0
  88. 5 0
  89. 3 0
  90. 6 0
  91. 1 0
  92. 10 0
  93. 5 0
  94. 9 0
  95. 5 0
  96. BIN
  97. 26 0
  98. 5 0
  99. 6 0
  100. 5 0

+ 2 - 0

@@ -0,0 +1,2 @@
+ChangeLog    merge=merge-changelog
+ChangeLog-2013    merge=merge-changelog

+ 30 - 0

@@ -0,0 +1,30 @@

+ 3 - 0

@@ -0,0 +1,3 @@
+[submodule "gnulib"]
+	path = gnulib
+	url =

+ 5 - 0

@@ -0,0 +1,5 @@

+ 38 - 0

@@ -0,0 +1,38 @@
+AUTHORS of findutils
+I do not know the name of the original author of the findutils
+package, but the authors of all the major components are known.  Eric
+B. Decker contributed GNU find and Michael Rendell contributed xargs.
+James A. Woods contributed locate.
+Here are the names of some authors culled from ChangeLog and
+miscellaneous other files.  The main criterion for whether your name
+ends up in this file or in THANKS is that the people with entries here
+donated code or documentation which was significant enough to require
+a copyright assignment.
+The locate program and its helper programs are derived (heavily
+modified) from James Woods' public domain fast-find code, which is
+also distributed with the 4.3BSD find.
+Eric B. Decker <>, <>
+Michael Rendell
+David J. MacKenzie
+Jim Meyering
+Tim Wood
+Kevin Dalley <>
+Paul Eggert <>
+James Youngman <>
+Jay Plett
+Paul Sheer
+Dmitry V. Levin
+Bas van Gompel
+Eric Blake <>
+Andreas Metzler
+Kamil Dudka  <>
+Bernhard Voelker <>
+The current maintainer of the findutils package is James Youngman.
+Questions about findutils should be addressed to the mailing list,
+<> which, contrary to the impression given by its
+name, is used for general discussion of the findutils package.

+ 674 - 0

@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+ Copyright (C) 2007 Free Software Foundation, Inc. <>
+ 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 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.
+  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.
+  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.
+  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 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.
+  The precise terms and conditions for copying, distribution and
+modification follow.
+                       TERMS AND CONDITIONS
+  0. Definitions.
+  "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.
+  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 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 "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 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 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 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 "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 regenerate automatically from other parts of the Corresponding
+  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
+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.
+  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 prohibiting or restricting circumvention of such
+  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.
+  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:
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+    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 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.
+  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 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.
+    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 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 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 "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
+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).
+  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 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 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 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:
+    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 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
+    reasonable ways as different from the original version; 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 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 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 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 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 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).
+  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
+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.
+  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 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.
+  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".
+  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.
+  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.
+  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 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.
+  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
+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 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 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 holder as a result of your choosing to follow a
+later version.
+  15. Disclaimer of Warranty.
+  16. Limitation of Liability.
+  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
+  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.
+    <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 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
+    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 like this when it starts in an interactive mode:
+    <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.
+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".
+  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 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

+ 11398 - 0

@@ -0,0 +1,11398 @@
+2013-12-08  James Youngman  <>
+	Bug #35753: check the success/failure of material I/O operations.
+	* lib/listfile.c (list_file): Check the result of fprintf to
+	determine if there was an I/O error on output.  Return false (bool
+	instead of void) if so.
+	(print_name_without_quoting): Likewise.
+	(print_name_with_quoting): Likewise.
+	(print_name): Propagate the result of print_name_without_quoting
+	or print_name_with_quoting (and make all three functions return bool).
+	* find/pred.c (is_ok): Check the result of fprintf to
+	determine if there was an I/O error on output.  Exit fatally if
+	there was a problem (since we cannot expect the user to say "yes"
+	or "no" to a prompt they will not have seen).
+	* xargs/xargs.c (print_args): Check the result of fprintf and
+	fflush to determine if there was an I/O error on output.  Exit
+	fatally for the same reason as above if there is a problem.
+	* NEWS: Mention this bugfix (now that it is fully fixed).
+	Fix some signed/unsigned problems.
+	* find/util.c (show_valid_debug_options): change type of array
+	subscript to size_t to avoid signed/unsigned problems.
+	(set_stat_placeholders): Silence unuseful compiler warning about
+	unused parameter.
+	* find/ftsfind.c (show_outstanding_execdirs): change type of array
+	subscript to size_t to avoid signed/unsizned problems.
+	Fix format specifier in safe_read error message.
+	* xargs/xargs.c (xargs_do_exec): print size_t values with %zu, not
+	%d (since size_t is not and never can be the same type as int).
+	Bug #35753: detect failure of the atexit library function.
+	* find/find.c (main): Issue a fatal error message if atexit fails.
+	* xargs/xargs.c (main): Likewise.
+	* find/ftsfind.c (main): Likewise.
+	* locate/code.c (main): Likewise.
+	* locate/frcode.c (main): Likewise.
+	* locate/locate.c (dolocate): Likewise.
+	* locate/bigram.c (main): Likewise; also include <errno.h>.
+2013-10-27  James Youngman  <>
+	* THANKS: Add Eric S. Raymond.
+2013-10-27  Eric S. Raymond  <>
+	Add bracket missing from synopsis in locate manpage.
+	* locate/locate.1 (SYNOPSIS): Add missing bracket.
+2013-10-26  James Youngman  <>
+	Clearly explain the result of -exec/-execdir ... +
+	* doc/find.texi (Single File): Explain that "-exec command ;"
+	returns true of the command exited with a status of 0.
+	(Multiple Files): Explain that "-execdir command +" always returns
+	true.  Likewise for "-exec command +".
+	* find/find.1: similar changes.
+2013-09-24  James Youngman  <>
+	Fix bug #40094: minor inconsistencies in xargs option descriptions.
+	* xargs/xargs.1: Update the description of -e option to emphasize
+	that the argument must follow the option letter immediately (in
+	other words, that it may not appear in the next program argument).
+	Likewise for the the -i and -l (lower-case L) options.
+	* xargs/xargs.c (usage): Minor consistency improvements to help
+	text.
+	Update Vietnamese, Czech and Dutch translations.
+	* po/nl.po: Update Dutch translation.
+	* po/cs.po: Update Czech translation.
+	* po/vi.po: Update Vietnamese translation.
+2013-09-23  James Youngman  <>
+	Fix bug #39162: -printf reads beyond arguments terminated by \
+	* find/print.c (insert_fprintf): If a \ is found at the end of a
+	format string, issue a warning (and render it as-is).
+	* NEWS: Mention this bugfix.
+	Update version number to 4.5.13-git.
+	* Update version number to 4.5.13-git.
+	* NEWS: Likewise.
+	Updated Estonian, Polish, Ukrainian translations.
+	* po/et.po: Updated the Estonian translation from the Translation
+	Project.
+	* po/pl.po: Updated the Polish translation.
+	* po/uk.po: Updated the Ukrainian translation.
+	* NEWS: Mention these updates.
+2013-09-22  James Youngman  <>
+	Release findutils-4.5.12.
+	* (AC_INIT): Change version number to 4.5.12.
+	* NEWS: Change version number of most recent release to 4.5.12.
+	Issue an error message when fts_read fails. Fixes bug #39324.
+	* find/ftsfind.c (find): when fts_read fails, issue an error
+	message, set the exit status to zero and stop.  Previously the
+	program would just stop (i.e. it failed to distinguish "done" from
+	"failed").
+	* find/find.1 (-exec): explain that on failure, some pending
+	command launches may not happen.  The Texinfo documentation
+	already pointed this out, so that didn't need to be changed.
+	* NEWS: Mention this bugfix.
+	Add a bug number for bug #40088.
+	* NEWS: Add a bug number for bug #40088: potential buffer overflow
+	in -execdir and -okdir.  Re-order the bugs listed to be
+	decreasing numerically by ID.
+2013-09-21  James Youngman  <>
+	find: state that -execdir command is run locally to the matched file.
+	* doc/find.texi (Single File): Correct the description of what the
+	current directory will be when the command specified by -execdir
+	gets run.  This fixes a documentation but reported by Eric
+	Hanchrow.
+	* NEWS: Mention this fix.
+2013-09-21  Bernhard Voelker  <>
+	xargs: wait for process before prompting in interactive mode (-p)
+	* xargs/xargs.c (xargs_do_exec): Move the code for waiting for
+	forked processes up, so that the child process terminates before
+	we prompt for the next command.
+	* NEWS: Mention the fix.
+2013-09-21  Dmitry V. Levin  <>
+	find: fix potential buffer overflow in -execdir and -okdir.
+	* lib/buildcmd.c (bc_push_arg): Take prefix length into account
+	to avoid state->argbuf overflow.
+	* NEWS: Mention this fix.
+2013-09-21  James Youngman  <>
+	Make test more POSIX-compliant.
+	* find/testsuite/ Avoid using seq;
+	instead, use pre-generated lists of test file names.  Also avoid
+	using file descriptors 0, 1, 2 in the test.
+	Fix typo "sturct".
+	* find/exec.c (impl_pred_exec): Typo fix: struct/struct.
+	* ChangeLog (2007-03-28): Likewise.
+2013-09-20  Bernhard Voelker  <>
+	find: fix fd leak with --execdir option (bug#34976)
+	* find/exec.c (impl_pred_exec): Free the working directory if find
+	executes the command in the local dir, i.e. if it has been saved
+	by record_exec_dir().  Re-indent code.
+	* find/testsuite/ Add test.
+	* find/testsuite/ (test_shell_progs): Mention the test.
+	* NEWS: Mention the fix.
+2013-09-20  James Youngman  <>
+	Updated Greek translation.
+	* po/el.po: Updated Greek translation from the Translation
+	Project.
+2013-09-20  Bernhard Voelker  <>
+	xargs: Fix integer overflow in implicit conversion in do_exec.
+	* xargs/xargs.c (xargs_do_exec): Change type of r from int to
+	size_t, since that is the type that safe_read actually returns.
+2013-09-20  James Youngman  <>
+	Add Bernhard Voelker to AUTHORS.
+	* AUTHORS: Add Bernhard Voelker.
+	* Check for prefixed versions of ranlib, too.
+2013-09-20  Benedikt Morbach  <> (tiny change)
+	Check for both prefixed and unprefixed versions of "ar".
+	* Look for '${host}-ar' as set by AC_CANONICAL_HOST
+	before looking for the unprefixed 'ar'.  This is useful when
+	cross-compiling when all your binutils are prefixed.
+2013-09-20  James Youngman  <>
+	Fix compilation error where struct dirent lacks a d_ino member.
+	* find/find.c (NOT_AN_INODE_NUMBER): Add missing identifier which
+	(when missing) caused a compilation error on system where struct
+	dirent lacks a d_ino member.
+	Be consistent about what we call the places the search starts.
+	* find/find.1: Consistently describe the paths at which the search
+	begins as "satrting points".
+	Refer to the info manual in a clearer and more explicit way.
+	* find/find.1 (SEE ALSO): Explain how to invoke info to read the
+	Texinfo manual.
+	* locate/locate.1 (SEE ALSO): Likewise.
+	* locate/updatedb.1 (SEE ALSO): Likewise.
+	* xargs/xargs.1 (SEE ALSO): Likewise.
+2013-06-02  James Youngman  <>
+	Add unlinkat moduile.
+	* import-gnulib.config (modules): Add unlinkat module, following
+	bug report from Martin von Gagern.
+2013-04-22  Paul Eggert  <>
+	More removal of support for -perm +MODE.
+	* find/parser.c (parse_perm): Remove no-longer-needed local var
+	and associated code.  Reported by Eric Blake in
+	<>.
+2013-04-21  Paul Eggert  <>
+	Remove support for obsolete -perm +MODE syntax.
+	Also, do not reject -perm /MODE merely because of POSIXLY_CORRECT.
+	Problem reported in <>.
+	* NEWS:
+	* doc/find.texi (Mode Bits): Document this.
+	(Environment Variables): POSIXLY_CORRECT does not affect -perm.
+	* find/parser.c (parse_help): Mention /MODE, not +MODE.
+	(non_posix_mode): Remove.
+	(parse_perm): Remove support for -perm +MODE.
+	Do not reject -perm /MODE merely because POSIXLY_CORRECT is set;
+	POSIXLY_CORRECT is not supposed to be for pedantic checking.
+	* find/find.1 (-perm): describe this change.
+	(HISTORY): update the existing statement about the deprecation of
+	+MODE to explain that support has now been removed.
+2013-04-22  James Youngman  <>
+	Fix documentation typo.
+	* doc/find.texi (Mode Bits): Fix typo "it set" -> "is set".
+2013-04-20  Paul Eggert  <>
+	doc: fix typos uncovered by texinfo 5.0
+	* doc/find-maint.texi: Fix typos that cause 'make' to fail
+	if texinfo 5.0 is installed.
+2013-04-22  James Youngman  <>
+	Enable assertions in locate.
+	* locate/locate.c: Don't #define NDEBUG.
+2013-04-21  James Youngman  <>
+	* find/find.1 (-size): explain the rounding-up semantics more
+	clearly.
+	Add example for find -printf.
+	* doc/find.texi (Print File Information): Add an example for "find
+	-printf" suggested by Karl Berry.
+2011-12-31  Karl Berry  <>
+	Further documentation improvements.
+	* doc/find.texi: use @code for environment variable names, and
+	other improvements.
+2009-08-03  Peter Breitenlohner  <>
+	* locate/locate.c: Simplify handling of slocate databases.
+	Fix the bug assuming second path extends the first one.
+	* locate/testsuite/locate.gnu/slocate.{exp,xo}: New testcase
+	for slocate databse, exposing this bug.
+	* locate/testsuite/ Add new test case.
+2009-08-03  Peter Breitenlohner  <>
+	* locate/locate.c: Enable assertions and fix the off-by-one
+	bugs that prevented this.
+2009-08-03  Peter Breitenlohner  <>
+	* doc/find.texi: Remove duplicate paragraph and fix a typo.
+2013-03-31  James Youngman  <>
+	Don't use reserved identifiers in macro names; fix other code smells.
+	* build-aux/ (checkers): Check for #define directives
+	which use a macro name which is reserved.
+	(MakefileRegexChecker): New class which performs regex checks on
+	makefiles; this ensures that we don't check if we're
+	going to check anyway.
+	* lib/unused-result.h: Don't use a reserved identifier in the
+	macro name defined as the #include guard.
+	* locate/locatedb.h: Likewise.
+	* (findutils-check-smells): Don't check gnulib code.
+	* (hack_gnulib_tool_output): Move the 'do' of a
+	for loop onto the line following the 'for' (instead of the same
+	line).
+2013-03-29  James Youngman  <>
+	Document that -0/-d turns off logical end-of-file processing.
+	* doc/find.texi (xargs options): Explain that the logical end of
+	file marker string set with -E is not special if -d or -0 was
+	specified.
+	* xargs/xargs.c (usage): Mention this in the --help output.
+	(read_string): Correct the function header comment to point out
+	that there is no logical end-of-file processing for this case.
+	Also point out that the delimiter may not always be NUL.
+	This documentation update fixes Savannah bug #36652.
+	(main): Emit a warning message if -0/-d is specified and -E was
+	also used.
+	* xargs/testsuite/xargs.gnu/E_-0.exp: Don't compare stderr output,
+	since for this case xargs now emits a warning message.
+	* NEWS: Mention this change.
+2013-03-29  James Youngman  <>
+	Updated the Galician translation.
+	* gl.po: Updated Galician translation.
+2013-03-26  James Youngman  <>
+	Updated a number of translations.
+	* cs.po: Updated Czech translation.
+	* et.po: Updated Estonian translation.
+	* fi.po: Updated Finnish translation.
+	* fr.po: Updated French translation.
+	* nl.po: Updated Dutch translation.
+	* pl.po: Updated Polish translation.
+	* ru.po: Updated Russian translation.
+	* uk.po: Updated Ukrainian translation.
+	* vi.po: Updated Vietnamese translation.
+	* zh_CN.po: Updated Chinese (simplified) translation.
+2013-03-26  Kamil Dudka  <>
+	Fix compile-time warnings.
+	* find/defs.h (struct predicate): Add a missing const modifier.
+	* find/find.c (wd_sanity_check): Suppress a warning in #else branch.
+	(process_dir): Remove an unused variables and statements.
+	* find/pred.c (pred_context): Use const modifier in the prototype.
+	* lib/buildcmd.{c,h} (bc_args_exceed_testing_limit): Remove a const
+	modifier causing unnecessary warnings.
+	* xargs/xargs.c (main): Add explicit type-casts.
+2013-03-24  James Youngman  <>
+	Expand on warning about xargs -P and stdout, including in Info.
+	* xargs/xargs.1: Expand on the warning about sharing stdout for
+	"xargs -P".
+	* doc/find.texi (Controlling Parallelism): Add a suitable warning
+	about sharing resources here, too.
+	* NEWS: Mention that all relevant documentation was updated with
+	this warning.
+2013-03-24  Bernhard Voelker  <>
+	Improve error message for find -type X (X = an unknown file type).
+	* find/parser.c (insert_type): Give a more comprehensible error
+	message when the type letter following -type or -xtype corresponds
+	to a type of file which was unknown on the system which compiled
+	the find binary.
+	* NEWS: Mention this improvement.
+	xargs: split usage text to help translators, and clarify it.
+	* xargs/xargs.c (usage):  Define HTL macro to print one help text
+	line (or entry).  Split the option descriptions up by using the
+	above macro.  Refine the messages to adapt to the common way:
+	change the start of each option's description to lower case, do
+	not use periods at the end, use semicolons where needed, indent
+	secondary lines, several other minor improvements.
+	* NEWS: Mention this improvement.
+	* xargs/xargs.1: Add note for -P suggesting the use of a locking
+	system to avoid corrupted stdout.
+2013-03-24  James Youngman  <>
+	Fix Savannah bug #38583: errno-buffer read failed in xargs_do_exec
+	* import-gnulib.config (modules): Import the safe-read module.
+	* xargs/xargs.c (xargs_do_exec): Use safe_read so that the read
+	system-call is retried if we handle a signal (for example
+	SIGUSR[12]) while we are trying to read the errno vlaue from the
+	child process.
+	Fix misleading message from; allow .git symlink.
+	* (check_old_gnulib_dir_layout): Really apply the
+	bugfix by Kamil Dudka which eliminates a misleading message of
+ on a fresh repository obtained by 'git clone
+	--recursive', by requiring gnulib/.git to exist but not requiring
+	it to be a directory.
+	Bugfix to "make clean": do not delete header files.
+	* lib/ (coverage-clean): Remove output files left
+	behind by gcc -fprofile-arcs -ftest-coverage by using $(RM) with a
+	glob pattern rather than a $(libfindtools_a_SOURCES.c=.gcno)
+	Makefile substitution, because the latter caused us to delete
+	header files entirely (their names do not end in .c).  This had
+	meant that it was impossible to compile findutils after "make
+	clean".  Bug report by David Gilbert.
+	* find/ (coverage-clean): Likewise.
+	* xargs/ (coverage-clean): Likewise.
+	* locate/ (coverage-clean): Likewise.
+	* (coverage-clean): Likewise, but also do this in the
+	subdirectories whose files are generated by
+	gnulib-tool.
+	Move on from 4.5.11, to 4.5.12-git
+	* NEWS: Add a new section for 4.5.12-git.  Mention the bugfix to
+	find/testsuite/
+	* Update the version number.
+	Fix Bash-ism [[ ... ]].
+	* find/testsuite/ Change [[ ... ]] to [ ... ]
+	because the first pattern is a Bash-ism.  Bug reported by David
+	Gilbert.
+2013-02-03  Kamil Dudka  <>
+	Avoid using 'INCLUDES =' in automake templates.
+	* find/ Use AM_CPPFLAGS instead of deprecated INCLUDES.
+	* lib/ Likewise.
+	* locate/ Likewise.
+	* xargs/ Likewise.
+	Eliminate a misleading message of on a fresh
+	repository obtained by 'git clone --recursive'.
+	* (check_old_gnulib_dir_layout): Do not require
+	./gnulib/.git to be a directory.
+2013-02-03  James Youngman  <>
+	Fix Savannah bug #38239, missing variable initialisation in locate
+	* locate/locate.c (cleanup_quote_opts): New atexit function, frees
+	quote_opts which otherwise would leak.
+	(dolocate): Eliminate the redundant boolean variable
+	they_chose_db, whose true/false-ness followed the not-NULL-ness of
+	locate_path.  Rename locate_path to user_selected_locate_path to
+	make this explicit.
+	(dolocate): When we get to the bottom of the loop, don't try to
+	check for a further element in user_selected_locate_path if it is
+	NULL (that is, $LOCATE_PATH was unset and the -d option was not
+	used).
+	* po/findutils.pot: Updated template file from the Translation
+	Project
+2013-02-02  James Youngman  <>
+	Release findutils-4.5.11.
+	* NEWS: update version number from 4.5.11-git to 4.5.11.
+	* (AC_INIT): Likewise.
+	Reduce needless calls to complete_pending_execdirs.
+	* find/exec.c (impl_pred_exec): Once pushing an argument for
+        -exec{,dir} ... +, Only set state.execdirs_outstanding if
+	there were previously no todo items on ths command line.
+	This avoids spurious calls to complete_pending_execdirs().
+2012-12-19  James Youngman  <>
+	Make the manual section ordering and menu item ordering consistent.
+	* doc/find.texi (Top): Re-order menu items to be consistent with
+	ordering of sections ('Reference' is moved).
+	(Print File Information): Add missing menu item 'Formatting Flags'
+	and remove that menu item from inside 'Format Directives'.
+	(Formatting Flags): Hence this is a subsection, not a
+	subsubsection.
+2012-12-15  Stefano Lattarini  <> (trivial change)
+	build: remove redundant AC_SUBST of var INCLUDES
+	* don't call AC_SUBST(INCLUDES).
+2012-12-15  Bernhard Voelker  <> (trivial change)
+	* locate/ (PRUNEFS): Avoid 9P, cifs and nfs4
+	filesystems by default.
+2012-12-15  James Youngman  <>
+	Tweak to make diffs easier to read.
+	* locate/ (PRUNEFS): List the default items in
+	alphabetical order to make diffs easier to read.
+	(PRUNEPATHS): likewise.
+	Re-generate doc/regexprops.texi.
+	* doc/regexprops.texi: re-generate to describe the changes to
+	gnulib for the regular expression types "awk" (to add character
+	class support), "gnu-awk" (to add range support) and "posix-awk"
+	(also to add range suport).
+	* NEWS: Describe this change.
+2012-11-17  Dmitry V. Levin  <>
+	find: use FTS_VERBATIM
+	* gnulib: update to latest, to get FTS_VERBATIM support.
+	* find/ftsfind.c (ftsoptions): Set the FTS_VERBATIM bit.  This
+	Patch was contributed on 2012-11-18, but was applied with the
+	above regexprops change)
+2012-12-14  James Youngman  <>
+	Fix bug #37926 (wrong result for oldfind -inum)
+	* find/find.c (D_INO): Define D_INO as a convenience accessor for
+	the inode number in struct dirent; use 0 if there is no d_ino
+	member in struct dirent.
+	(main): Pass the inode number of the top-level directory to
+	process_top_path.
+	(at_top): Add argument inum, the inode number of the file we are
+	looking at.  Pass this to the action function.
+	(do_process_top_dir): Pass the inode number to process_path.
+	(do_process_predicate): Take (but ignore) the inode number
+	argument.
+	(process_path): Add argument inum, the inode number of the file we are
+	looking at.  Populate statbuf.st_ino with this value.  This avoids
+	a stat call in pred_inum if the stat information would not
+	otherwise be used.
+	(process_dir): Pass the inode number to process_path.
+	* import-gnulib.config (modules): Add d-ino.
+	* NEWS: Mention this bugfix.
+2012-11-17  James Youngman  <>
+	Update the Vietnamese, Ukranian and Croatian translations.
+	* po/vi.po, po/uk.po, po/hr.po: Update the translation files from
+	the translation project.
+2012-09-18  Jim Meyering  <>
+	find: fix two time-formatting leaks (bug #37356)
+	* find/print.c (do_time_format): Call xmalloc for static "buf" only
+	the first time.
+	When reallocating buf, be sure to update its buf_size.
+	Also free "altbuf".
+	Reported by Nemo Maelstrom Thorx in
+	via Andreas Metzler in
+	find: minor tweaks
+	* find/print.c (do_time_format): Use memcpy in place of sprintf.
+	When calling x2nrealloc, use "sizeof *buf" as the element size,
+	rather than "2u".
+	build: avoid failure
+	* import-gnulib.config (extra_files): Remove build-aux/missing,
+	since that file has been removed from gnulib.
+	build: stop using now-obsolete macro, AM_C_PROTOTYPES
+	* Don't use obsolete AM_C_PROTOTYPES.
+2011-12-30  Karl Berry  <>
+	Documentation improvements (UK spelling, use of @code).
+	* find.texi (@copying): add 2011, period outside quotes.
+	(thoughout): use UK spelling and " -- " convention.
+	(section names): use @code where needed.
+2011-09-11  Jim Meyering  <>
+	Fix a typo in find.texi.
+	* doc/find.texi (Error Messages From find): Fix typo s/an/a/.
+2011-08-20  James Youngman  <>
+	Describe recent memory savings on very large directories.
+	* NEWS: Describe the recent changes which reduce the amount of
+	heap memory used in processing directories containing very many
+	entries.
+	Remove no-longer-used files savedir.[ch].
+	* lib/savedirinfo.c: delete unused file.
+	* lib/savedirinfo.h: delete unused file.
+	* lib/ (libfind_a_SOURCES): Remove savedirinfo.c.
+	(EXTRA_DIST): Remove savedirinfo.h.
+	Reduce memory consumption of oldfind on large directories.
+	* find/find.c (process_dir): Reduce memory consumption for large
+	directories.  Don't save the whole directory content with
+	xsavedir, instead just loop over the results of readdir.  This
+	means that oldfind will consume one file descriptor per directory
+	level.
+	* find/testsuite/ verify that the memory consumption
+	of oldfind is reasonable on large directories.
+	Reduce memory consumption of fts.
+	* gnulib: update to latest, mainly to include a bugfix (gnulib
+	commit 47cb657eca1abf2c26c32c8ce03def994a3ee37c) which limits the
+	memory consumed by fts.
+	* find/testsuite/ New test, verifying that memory
+	consumption in ftsfind does not grow indefinitely as the size of
+	directories increases.
+	* find/testsuite/ (test_shell_progs): Added
+2011-06-29  James Youngman  <>
+	Fix some constness warnings when dealing with -printf formats.
+	* find/parser.c (collect_arg_nonconst): Rename collect_arg to
+	collect_arg_nonconst and change the collected argument from const
+	char* to char*.
+	(collect_arg): Call collect_arg_nonconst to do the real work.
+	(parse_printf): Call collect_arg_nonconst instead of collect_arg.
+	Change `format' from const char* to char*.
+	(parse_fprintf): Likewise.
+	* find/print.h: Change 'format' from const char* to char*, since
+	actually we edit it in place.
+	* find/print.c (parse_octal_escape): Instead of updating a const
+	char* pointer to indicate how many characters from the input we
+	consumed, update a size_t value.
+	(insert_fprintf): Change function definition to match updated
+	prototype.  Eliminate fmt_inpos.  Introduce a `readpos' offset
+	variable which takes the previous role of fmt_inpos.
+2011-06-28  James Youngman  <>
+	Refactor insert_fprintf to minimise calls to make_segment.
+	* find/print.c (get_format_flags_length): Factor out of
+	insert_fprintf; computes the length of the format flags for a
+	format specifier (that is everything after the % but before the
+	format control character).
+	(get_format_specifer_length): Also factored out of insert_fprintf;
+	returns the number of format control characters (e.g. 2 for %A@)
+	or 0 for error.
+	(insert_fprintf): Keep fmt_editpos and fmt_inpos more closely in
+	step, instead of initialising fmt_inpos only when we need it (the
+	idea eventually will be to make fmt_inpos the loop control
+	variable).  Call get_format_specifer_length and
+	get_format_flags_length when needed. Reduce the number of
+	different calls to make_segment.  We now have one for each KIND_
+	value plus one for the error case.
+2011-06-27  James Youngman  <>
+	Factor some of the code out of insert_fprintf.
+	* find/print.c (insert_fprintf): Factor out the handling of
+	eascape codes into new functions parse_escape_char,
+	parse_octal_escape.
+2011-06-25  James Youngman  <>
+	Separate out the handling of \c.
+	* find/print.c (insert_fprintf): Deal with \c as a special case.
+	Remove some redundant continue statements.
+	* find/print.c (insert_fprintf): Remove a pair of redundant
+	'continue' statements.
+	Simplify -fprintf %%; handle %% like a regular format specifier.
+	* find/print.c (make_segment): Handle foo%% by simply generating a
+	format string of foo%% (that is, let vfprintf handle the escaped
+	%).
+	(insert_fprintf): Handle %% as KIND_FORMAT instead of KIND_PLAIN.
+	(do_fprintf): Handle %%.
+	Clarify variable naming in insert_fprintf.
+	* find/print.c (insert_fprintf): Rename some variables for greater
+	clarity:
+	format is now segstart, since it points to the start of the part
+	of the format string we're next going to pass to make_segment.
+	scan2 is now fmt_inpos (which is a const char*) and is the
+	scanning position beyond segstart which we're reading to locate
+	the end of this segment.
+	scan is now fmt_editpos and is the scanning position at which we
+	are modifying the format string (for example to change \n in the
+	format to the value of the '\n' character).
+2011-06-19  James Youngman  <>
+	Test find -printf %i.
+	* find/testsuite/ New test, for find -printf %i.
+	* find/testsuite/ (test_shell_progs): Add
+	Extract common test code into a sourced file.
+	* find/testsuite/ New file, extracting common
+	code from the test scripts.
+	* find/testsuite/ Source
+	* find/testsuite/ Source
+	* find/testsuite/ (EXTRA_DIST): Distribute
+2011-06-18  James Youngman  <>
+	Fix some compiler warnings in xargs.
+	* xargs/xargs.c: Remove definition of the unused macro VOID.
+	Include error.h instead of declaring error (incorrectly).
+	Change the type of lineno from int to size_t.
+	(get_char_oct_or_hex_escape): Don't point endp unnecessarily at p,
+	because they have different constness.  There's no need for this,
+	just initialise it to NULL.
+	(main): Make input_file const.   Make the default arglist
+	non-const, to avoid a constness warning.
+	(main): Pass the option name as the argument to error's %s format,
+	as opposed to the whole struct (this was a bug, but since the name
+	member was the first in the struct, there were probably no
+	symptoms).
+	(main): read_args returns an int, but the only negative value it
+	can return is -1.  Once we know that didn't happen, assign the
+	value to a size_t variable to avoid signed/unsigned warnings
+	elsewhere.
+	(xargs_do_exec): Manually inhibit some unused-parameters warnings.
+	(print_args): Use size_t as the type of a loop variable.
+	(wait_for_proc): Since procs_executing is an unsigned long, use a
+	%lu format specifier to print it.
+	(increment_proc_max): Inhibit an unused-parameter warning (the
+	signal number).
+	(decrement_proc_max): Likewise.
+	* lib/buildcmd.h (struct buildcmd_control): Make member
+	replace_pat const.  Change the type of lines_per_exec to unsigned
+	long.
+2011-06-20  James Youngman  <>
+	Use a consistent include order in header files too.
+	* lib/printquoted.h: Use the preferred header-file inclusion order
+	here too.
+	Use a consistent order for header-file inclusion.
+	* find/exec.c: Include config.h, then system headers followed by
+	gnulib headers and last, find-specific headers.
+	* find/find.c: Likewise.
+	* find/finddata.c: Likewise.
+	* find/fstype.c: Likewise.
+	* find/ftsfind.c: Likewise.
+	* find/parser.c: Likewise.
+	* find/pred.c: Likewise.
+	* find/tree.c: Likewise.
+	* find/util.c: Likewise.
+	* lib/buildcmd.c: Likewise.
+	* lib/dircallback.c: Likewise.
+	* lib/extendbuf.c: Likewise.
+	* lib/fdleak.c: Likewise.
+	* lib/findutils-version.c: Likewise.
+	* lib/listfile.c: Likewise.
+	* lib/printquoted.c: Likewise.
+	* lib/qmark.c: Likewise.
+	* lib/regexprops.c: Likewise.
+	* lib/regextype.c: Likewise.
+	* lib/safe-atoi.c: Likewise.
+	* lib/savedirinfo.c: Likewise.
+	* lib/splitstring.c: Likewise.
+	* lib/test_splitstring.c: Likewise.
+	* lib/waitpid.c: Likewise.
+	* locate/bigram.c: Likewise.
+	* locate/code.c: Likewise.
+	* locate/frcode.c: Likewise.
+	* locate/locate.c: Likewise.
+	* locate/word_io.c: Likewise.
+	* xargs/xargs.c: Likewise.
+	Take gnulib-tool's advice about which header files to include.
+	* locate/locate.c: Include <regex.h> instead of "regex.h".
+	Include "fnmatch.h" instead of <fnmatch.h> (because we use
+	fnmatch-gnu).  Include "gettext.h".
+	* lib/regexprops.c: Include <regex.h> instead of "regex.h".
+	* find/tree.c: Include "gettext.h".  Include "fnmatch.h" instead
+	of <fnmatch.h> (because we use fnmatch-gnu).
+	* find/parser.c: Include "gettext.h" and <regex.h>.  Include
+	"fnmatch.h" instead of <fnmatch.h> (because we use fnmatch-gnu).
+	* find/pred.c: Likewise.
+	* find/exec.c: Include "gettext.h".
+	* find/find.c: Likewise.
+	* find/fstype.c: Likewise.
+	* find/ftsfind.c: Likewise.
+	* find/print.c: Likewise.
+	* lib/buildcmd.c: Likewise.
+	* lib/fdleak.c: Likewise.
+	* lib/findutils-version.c: Likewise.
+	* lib/regextype.c: Likewise.
+	* lib/safe-atoi.c: Likewise.
+	* find/util.c: Likewise.
+	* locate/bigram.c: Likewise.
+	* locate/code.c: Likewise.
+	* locate/frcode.c: Likewise.
+	* locate/word_io.c: Likewise.
+	* xargs/xargs.c: Likewise.
+	* find/ Add a comment explaining why gnulib-tool
+	advised us to use each library.
+2011-06-19  James Youngman  <>
+	Update gnulib.
+	* gnulib: update to latest version.
+2011-06-18  James Youngman  <>
+	Remove test-coverage output files for "make clean".
+	* find/ (CLEANFILES): Clean the .gcda and .gcdo files
+	which are produced by running programs that were compile with gcc
+	-fprofile-arcs -ftest-coverage.
+	* lib/ (CLEANFILES): Likewise.
+	* locate/ (CLEANFILES): Likewise.
+	* xargs/ (CLEANFILES): Likewise.
+	Move the printing code into print.c.
+	* find/print.c (scan_for_digit_differences): Move to this file
+	from pred.c.
+	(do_time_format): Move to this file from pred.c.
+	(format_date): Likewise.
+	(weekdays): Likewise.
+	(months): Likewise.
+	(ctime_format): Likewise.
+	(file_sparseness): Likewise.
+	(checked_fprintf): Likewise.
+	(checked_print_quoted): Likewise.
+	(checked_fwrite): Likewise.
+	(checked_fflush): Likewise.
+	(HANDLE_TYPE): Likewise.
+	(do_fprintf): Likewise.
+	(pred_fprintf): Likewise.
+	* find/pred.c: Don't include human.h, filemode.h, verify.h or
+	xalloc.h, we don't need them.  Don't define MAX.  Don't declare
+	ctime_format or format_date.  Each of the functions moved into
+	print.c were moved out of this file.
+	Reserve format specifiers %(, %{ and %[ for future use.
+	* find/print.c (insert_fprintf): Reject %(, %{ and %[.
+	(make_segment): Remove code which previously supposedly rejected
+	these format specifiers, but in fact did nothing.   Replace with
+	an assertion to document the fact that we do not expect to see
+	these format characters in make_segment.
+	* find/testsuite/find.gnu/printf-reserved.exp: New test case, for
+	%(, %{ and %[, which are all rejected.
+	* find/testsuite/ (EXTRA_DIST_EXP): Add
+	find.gnu/printf-reserved.exp.
+	* doc/find.texi (Reserved and Unknown Directives): Document this.
+	* find/find.1: Document this.
+	* NEWS: Mention this change.
+	Additional test cases for printf field width, precision and sign.
+	* find/testsuite/find.gnu/printf.exp: Add test cases for left and
+	right string alignment (%-10p), string truncation (%10.6p),
+	explicit signs (%+d), left and right alignment (%10p, %-10p),
+	zero-filling on decimal fields.
+	* find/testsuite/find.gnu/printf.xo: Add expected outputs for the
+	new tests.
+	Add a test for find -printf ... %%.
+	* find/testsuite/find.gnu/printf.exp: Also test %%.
+	* find/testsuite/find.gnu/printf.xo: Add expected output for the
+	%% test case.
+	Add a test for "find -printf \c".
+	* find/testsuite/ (test_shell_progs): Add
+	* find/testsuite/ New test for "find -printf
+	\c".
+	Remove an unnecessary argument from insert_fprintf.
+	* find/print.c (insert_fprintf): Eliminate the 'func' argument,
+	since it is always pref_fprintf.
+	* find/print.h: Adjust the prototype accordingly.
+	* find/parser.c (parse_fprintf): Don't pass the func argument to
+	insert_fprintf.
+	(parse_printf): Likewise.
+	Add new test for octal and letter escapes in -printf format.
+	* find/testsuite/test_escapechars.golden: Expected output file.
+	* find/testsuite/ (EXTRA_DIST_GOLDEN): New variable;
+	distribute test_escapechars.golden.
+	* find/testsuite/ New test.
+	* find/testsuite/ (test_shell_progs): New variable,
+	where we keep the list of shell script tests.  Move existing
+	examples from TESTS and add
+	* find/testsuite/ (TESTS): Refer to test_shell_progs.
+	* allow trailing blanks and space-tab sequences in
+	find/testsuite/test_escapechars.golden.
+2011-06-17  James Youngman  <>
+	Split find's printf-related code into a new file.
+	* find/print.h: New file.  Declare insert_fprintf and
+	make_segment.
+	* find/print.c: New file. Move definitions of insert_fprintf and
+	make_segment to here.
+	* find/parser.c: Include "parser.h".  Move declarations of
+	insert_fprintf and make_segment into that file; move the
+	definitions into parser.c.
+	* find/ (libfindtools_a_SOURCES): Add print.c.
+	(EXTRA_DIST): Add print.h.
+	* po/ Add find/print.c.
+2011-06-15  James Youngman  <>
+	Fix compiler warnings in lib/regextype.c and find/parser.c.
+	* lib/regextype.c (tagRegexTypeMap): make the name field const.
+	* find/parser.c (parse_version): instead of counting features, use
+	a boolean variable, nofeatures.  This avoids compiler warnings
+	about overflow.
+	Adopt the use of the manywarnings module.
+	* import-gnulib.config (modules): Add manywarnings.
+	* Invoke gl_MANYWARN_ALL_GCC and
+	* Turn on the compiler warnings only if
+	--enable-compiler-warnings was specified to configure.
+2011-06-14  James Youngman  <>
+	Avoid pointer/integer comparison on value returned by strchr.
+	* find/parser.c (parse_newerXY): Compare the result of strchr
+	against NULL rather than 0.
+	Fix further compiler warnings.
+	* find/ftsfind.c (show_outstanding_execdirs): Now that
+	execp->state.cmd_argc is a size_t, we can't print it with %d.  So
+	print it with PRIuMAX (and include <inttypes.h> to define that).
+	* find/tree.c (prec_name): change return type to const char*.
+	(type_name): Likewise.
+	* find/exec.c (impl_pred_exec): use a separate variable (buf) to
+	point the memory allocated/freed with malloc/free, so that the
+	existing variable target can then be const (and so we can assign
+	pathname to it without a compiler warning).
+	Eliminate some compiler warnings.
+	* find/find.c: Remove definition of SAFE_CHDIR, which we don't
+	use.
+	* find/defs.h: Remove redundant declaration of launch.
+	* find/parser.c (parse_false): Cast unused arguments to void.
+	(parse_print0): Likewise.
+	(pred_context): Likewise.
+	(parse_newerXY): Add some parens for slightly greater clarity.
+	(make_segment): Avoid switch-missing-default-case warning by
+	turning it into an if statement.
+	(check_path_safety): Remove unused argument.
+	(insert_exec_ok): Don't pass the unwanted argument to
+	check_path_safety.
+	(get_relative_timestamp): silence compiler warning by adding a
+	case for the remaining enumeration value rather than using
+	default.
+	* find/pred.c (months): the strings can be const char*, rather
+	than just char*.
+	(ctime_format): change TIME_BUF_LEN to an integer constant to
+	avoid signed/unsigned comparison.
+	(blank_rtrim): Change to new-style function definition(!) and
+	remove unnecessary parentheses around a return value.
+	* lib/buildcmd.c: Omit redundant declaration of environ.
+	* find/tree.c (get_expr): Make static.
+	(cost_assoc): make the name field const.
+	(prec_assoc): make the prec_name field const.
+	(op_assoc): make the type_name field const.
+	(type_name): turn into an ANSI function definition(!).
+	(prec_name): Likewise!  Also remove spurious parentheses around
+	return value.
+	(prec_name): Remove spurious parentheses around return value.
+	* lib/buildcmd.h (buildcmd_state): change types of several fields
+	to size_t: cmd_argc, cmd_argv_alloc, largest_successful_arg_count,
+	smallest_failed_arg_count.
+	(buildcmd_control): change types of several fields
+	to size_t: max_arg_count, initial_argc, lines_per_exec,
+	args_per_exec.
+	Assume SIGCHLD and O_NOFOLLOW are defined by gnulib.
+	* find/find.c: Since gnulib defines O_NOFOLLOW, don't check to see
+	if the macro is defined.  Check instead to see if it is 0.
+	(safely_chdir_nofollow): Point this out.
+	(safely_chdir): Check O_NOFOLLOW for zeroness.
+	* find/exec.c: Don't #define SIGCHLD.
+	* xargs/xargs.c: Likewise.
+2011-06-14  James Youngman  <>
+	Fix coredump bug introduced in the previous change.
+	* locate/locate.c (dolocate): Remove declaration of e, which was
+	replaced by the variable db_name.  Change the last two uses of 'e'
+	to use 'db_name'.  This bugfix prevents possible coredumps when
+	issuing error messages about reads from the locate database (or
+	warnings about byte order for old databases).  This bug had been
+	introduced in the previous change.
+2011-06-13  James Youngman  <>
+	Split strings into fields nondestructively.
+	* lib/splitstring.c: New file; defines splitstring(), which will
+	non-destructively locate character-separated fields in a string.
+	* lib/splitstring.h: New file; declares splitstring.
+	* lib/test_splitstring.c: New file; unit test for splitstring.c.
+	* lib/nextelem.c: Delete (obsoleted by splitstring.c).
+	* lib/nextelem.h: Delete (obsoleted by splitstring.h).
+	* lib/ (libfind_a_SOURCES): Add splitstring.c,
+	splitstring.c.  Remove nextelem.c, nextelem.h.
+	(check_PROGRAMS): Add test_splitstring.
+	(TESTS): Add test_splitstring.
+	(test_splitstring_SOURCES): Sources for the
+	test_splitstring unit test.
+	* locate/locate.c: Include splitstring.h rather than nextelem.h.
+	(dolocate): Use splitstring rather than next_element.  In places
+	where we need a nul-terminated string, use strndup() to create it.
+	Convert some space-tab sequences to regular spacing.
+	* find/parser.c: Include splitstring.h rather than nextelem.h.
+	(check_path_safety): Use splitstring rather than next_element.
+	* import-gnulib.config (modules): Depend on the module strndup.
+	* Exempt lib/test_splitstring.c from calling
+	bindtextdomain or set_program_name.
+2011-06-13  James Youngman  <>
+	Fix compilation failure in bigram.c by including <locale.h>.
+	* locate/bigram.c: Include <locale.h>.
+2011-06-12  James Youngman  <>
+	Split exec-related code into a new file, exec.c
+	* find/exec.c: New file.
+	(initialise_wd_for_exec): Move out of pred.c
+	(record_exec_dir): Likewise.
+	(impl_pred_exec): Likewise.
+	(prep_child_for_exec): Likewise.
+	(launch): Likewise.
+	* find/pred.c: These functions are moved out of this file.
+	* find/defs.h: impl_pred_exec is no longer static in pred.c, so
+	add an external declaration for it.  Move the declaration of
+	launch to here also.
+	* find/ (libfindtools_a_SOURCES): Add exec.c.
+	* po/ Add find/exec.c.
+	Eliminate .x-sc_prohibit_empty_lines_at_EOF and .x-sc_bindtextdomain
+	* Move definition of which files we should not check to
+	exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF, instead
+	of .x-sc_prohibit_empty_lines_at_EOF.
+	Move contents of .x-sc_bindtextdomain into
+	exclude_file_name_regexp--sc_bindtextdomain.
+	.x-sc_prohibit_empty_lines_at_EOF: Delete.
+	.x-sc_bindtextdomain: Delete.
+	Enable sc_makefile_at_at_check; fix problems it identifies.
+	* lib/ Use $(FINDLIBOBJS) instead of @FINDLIBOBJS@.
+	* find/ (LDADD): Use $(FINDLIBS) instead of @FINDLIBS@.
+	* locate/ (updatedb): Use $(VERSION) and
+	$(PACKAGE_NAME) instead of @VERSION@ and @PACKAGE_NAME@.
+	* remove sc_makefile_at_at_check from local-checks-to-skip
+2011-06-12  James Youngman  <>
+	Improve
+	* build-aux/ Mention that many of these checks would
+	be better as gnulib syntax checks (since there are more flexible
+	ways to disable these).
+	(RegexChecker.__init__): Don't pass a spurious second "self"
+	argument.
+	(RegexChecker.Check): Provide a more intelligible message when
+	complaining about use atof/scanf.
+	(RegexChecker.Check): Enable the check for HAVE_FCNTL_H.
+	(RegexChecker.Check): When checking for trailing whitespace, don't
+	complain about trailing newlines(!)
+	(RegexChecker.Check): Indicate what the out-of-date address is
+	when we find one.
+2011-06-11  James Youngman  <>
+	Enable the sc_trailing_blank check.
+	* Enable sc_trailing_blank check.
+	(exclude_file_name_regexp--sc_trailing_blank): Exclude
+	xargs test inputs and outputs.  Exclude the COPYING file.  Exclude
+	a find test output.  Exclude the .po files.
+	* xargs/xargs.c: Remove trailing blanks.
+	* xargs/testsuite/config/unix.exp: Likewise.
+	* find/testsuite/find.posix/bracket-depth.exp: Likewise.
+	* find/testsuite/find.posix/files-not-expressions1.exp: Likewise.
+	* find/testsuite/find.posix/files-not-expressions2.exp: Likewise.
+	* find/testsuite/find.posix/files-not-expressions3.exp: Likewise.
+	* find/testsuite/find.posix/nameslash.exp: Likewise.
+	* find/testsuite/find.posix/perm-vanilla.exp: Likewise.
+	* find/testsuite/find.posix/sizes.exp: Likewise.
+	* find/testsuite/find.posix/sv-bug-25359.exp: Likewise.
+	* find/testsuite/find.posix/typesize.exp: Likewise.
+	* find/testsuite/find.gnu/access.exp: Likewise.
+	* find/testsuite/find.gnu/deletedir.exp: Likewise.
+	* find/testsuite/find.gnu/deletefile.exp: Likewise.
+	* find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise.
+	* find/testsuite/find.gnu/execdir-hier.exp: Likewise.
+	* find/testsuite/find.gnu/execdir-pwd.exp: Likewise.
+	* find/testsuite/find.gnu/execdir-root-only.exp: Likewise.
+	* find/testsuite/find.gnu/follow-arg-parent-symlink.exp: Likewise.
+	* find/testsuite/find.gnu/ilname.exp: Likewise.
+	* find/testsuite/find.gnu/lname.exp: Likewise.
+	* find/testsuite/find.gnu/perm-slash.exp: Likewise.
+	* find/testsuite/find.gnu/posix-h.exp: Likewise.
+	* find/testsuite/find.gnu/sv-bug-17782.exp: Likewise.
+	* find/testsuite/find.gnu/sv-bug-24169.exp: Likewise.
+	* find/testsuite/find.gnu/used-invarg.exp: Likewise.
+	* find/testsuite/find.gnu/used-missing.exp: Likewise.
+	* find/testsuite/excuses.txt: Likewise.
+	* locate/testsuite/config/unix.exp: Likewise.
+	* locate/testsuite/locate.gnu/bigendian.exp: Likewise.
+	* locate/testsuite/locate.gnu/bigprefix1.exp: Likewise.
+	* locate/testsuite/locate.gnu/exists2.exp: Likewise.
+	* locate/testsuite/locate.gnu/exists3.exp: Likewise.
+	* locate/testsuite/locate.gnu/littleendian.exp: Likewise.
+	* locate/testsuite/locate.gnu/notexists2.exp: Likewise.
+	* locate/testsuite/locate.gnu/notexists3.exp: Likewise.
+	* locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise.
+	* xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise.
+	* xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise.
+	* xargs/testsuite/xargs.posix/rc-125.exp: Likewise.
+	* xargs/testsuite/xargs.posix/sv-bug-18714.exp: Likewise.
+	* xargs/testsuite/xargs.posix/sv-bug-18714b.exp: Likewise.
+	* po/Makevars (EXTRA_LOCALE_CATEGORIES): Likewise.
+	* xargs/xargs.1 (SEE ALSO): Likewise.
+	Enable the sc_space_tab check
+	* Enable the sc_space_tab check.  Exclude various xargs
+	test inputs and outputs from the check.  Remove some obsolete
+	comments.
+	* locate/ (dblocation.texi): Remove space-tab sequences.
+	Enable the sc_texinfo_acronym check
+	* Enable the sc_texinfo_acronym check.  Exempt
+	doc/perm.text, which isn't ours anyway.
+	* doc/find.texi (Deleting Files): Say just POSIX rather than
+	@acronym{POSIX}, simply because this is the convention in GNU
+	documentation.  The motivation is that it's hard to do so
+	consistently (because, for example, you can't use @acronym in a
+	node name).
+	Enable syntax check sc_obsolete_symbols.
+	(exclude_file_name_regexp--sc_obsolete_symbols): Don't check
+	build-aux/
+	Enable more syntax checks, eliminate useless C preprocessor parentheses
+	* find/defs.h: Eliminate useless parentheses in #if.
+	* find/find.c (safely_chdir): Likewise.
+	* find/pred.c: Likewise.
+	* lib/buildcmd.c: Likewise.
+	* lib/fdleak.c: Likewise
+	* xargs/xargs.c: Likewise.
+	* find/parser.c: Likewise.
+	(ISDIGIT): Simplify, and avoid undefining isascii.
+	* (local-checks-to-skip): Remove sc_prohibit_cvs_keyword,
+	since the test produces no hits anyway.  Explain why we avoid
+	sc_two_space_separator_in_usage. Enable the sc_useless_cpp_parens
+	check.
+	Use stat-size macros in pred.c also.
+	* find/pred.c: Include stat-size.  Eliminate definitions of
+	now in stat-size.h (yes, this is the second set of these macros
+	we've removed).
+	(file_sparseness): Use ST_NBLOCKS and ST_NBLOCKSIZE.
+	* (local-checks-to-skip): Don't skip
+	sc_prohibit_stat_st_blocks, because now we no loner access the
+	st_blocks field of struct stat, directly.
+	* lib/listfile.c (file_blocksize): Eliminate this function, it's
+	no longer needed.
+	* lib/listfile.h: Don't declare file_blocksize.
+	Adopt the new gnulib module stat-size.
+	* lib/listfile.c: Include "stat-size.h".  Delete the DEV_BSIZE,
+	ST_BLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE macros which are now in
+	stat-size.h.
+	* gnulib: Update to latest.
+	* import-gnulib.config (modules): Add stat-size.
+2011-06-05  James Youngman  <>
+	Don't include sys/param.h where we don't need it.
+	* xargs/xargs.c: Don't include sys/param.h, we don't use it.
+	Don't include "stdio-safer.h" where it is not used.
+	* find/parser.c: Don't include stdio-safer.h, it's not used.
+	* lib/findutils-version.c: Likewise.
+	Don't include <stddef.h> where it is not used.
+	* lib/dircallback.c: Don't include <stddef.h>, it's not used.
+	* lib/extendbuf.c: Likewise.
+	* lib/qmark.c: Likewise.
+	* lib/savedirinfo.c: Likewise.
+	Fixes for empty-lines-at-EOF syntax check.
+	* .x-sc_bindtextdomain: Add newline at EOF.
+	* locate/ Remove empty trailing line at EOF.
+	* find/testsuite/ Likewise.
+	* .x-sc_prohibit_empty_lines_at_EOF: Don't apply this check to
+	m4/order-good.bin m4/order-bad.bin
+	locate/testsuite/locate.gnu/locateddb.old.x86.xi
+	locate/testsuite/locate.gnu/locateddb.old.powerpc.xi.
+	Avoid some false positives for the sc_prohibit_doubled_word check.
+	* .x-sc_prohibit_doubled_word: don't perform this check on
+	xargs/testsuite/xargs.sysv/iquotes.xo or ChangeLog.
+	Don't check .po files for doubled English words (because they're
+	not in English).
+	* find/tree.c: Modify some text to avoid saying "AND and",
+	which one of the syntax checks doesn't like.
+	(opt_expr): Likewise.
+	(consider_arm_swap): Likewise.
+	* README: Likewise.
+	Include dirent.h uncontintionally (since gnulib provides it).
+	* find/pred.c: Include <dirent.h> unconditionally; gnulib provides
+	it.
+	* lib/savedirinfo.c: Likewise.
+	Silence some false positives for sc_prohibit_always_true_header_tests.
+	* .x-sc_prohibit_always_true_header_tests: New file; exclude
+	build-aux/ from C inclusion tests, because it itself
+	contains examples of string the syntac checkers don't like
+	(because it's also a syntax checker).
+	ChangeLog: also exclude this because it frequently contains the
+	specifics of items added/removed, including examples of text which
+	are this syntax check looks for.
+	Prefer "cannot" to "can not".
+	* locate/locatedb.5: Change "can not" to "cannot".
+	* locate/updatedb.1: Likewise.
+	Update xargs error message.
+	* doc/find.texi (Error Messages From xargs): the message "can not
+	fit single argument within argument list size limit" is now
+	"argument list too long".
+2011-06-04  James Youngman  <>
+	Use the gnulib byteswap and uname modules.
+	* import-gnulib.config (modules): Add byteswap and uname.
+	* locate/word_io.c: Include byteswap.h.   Don't #define bswap_32.
+	* find/util.c: sys/utsname.h no longer needs include guards since
+	gnulib always provides it.
+	* Don't check for sys/utsname.
+	gnulib already defines O_CLOEXEC.
+	* lib/fdleak.c: gnulib's fcntl.h always defines O_CLOEXEC, so
+	don't define it here.
+	Add internationalisation support to bigram but not regexprops.
+	* locate/bigram.c: Use libintl.h.
+	(main): Call bindtextdomain.
+	* .x-sc_bindtextdomain: Exempt lib/regexprops.c from needing to
+	use bindtextdomain.  The output of regexprops is intended to be
+	determined entirely by the properties of the GNU regex
+	implementation.
+	Update gnulib.
+	* gnulib: update to current head.
+	Update the copyright year in C source files.
+	* find/defs.h: Update copyright year.
+	* find/find.c: Update copyright year.
+	* find/finddata.c: Update copyright year.
+	* find/ftsfind.c: Update copyright year.
+	* find/parser.c: Update copyright year.
+	* find/pred.c: Update copyright year.
+	* find/sharefile.c: Update copyright year.
+	* find/sharefile.h: Update copyright year.
+	* find/tree.c: Update copyright year.
+	* find/util.c: Update copyright year.
+	* lib/buildcmd.c: Update copyright year.
+	* lib/buildcmd.h: Update copyright year.
+	* lib/dircallback.c: Update copyright year.
+	* lib/dircallback.h: Update copyright year.
+	* lib/extendbuf.c: Update copyright year.
+	* lib/extendbuf.h: Update copyright year.
+	* lib/fdleak.c: Update copyright year.
+	* lib/fdleak.h: Update copyright year.
+	* lib/findutils-version.c: Update copyright year.
+	* lib/findutils-version.h: Update copyright year.
+	* lib/forcefindlib.c: Update copyright year.
+	* lib/listfile.c: Update copyright year.
+	* lib/listfile.h: Update copyright year.
+	* lib/nextelem.c: Update copyright year.
+	* lib/nextelem.h: Update copyright year.
+	* lib/printquoted.c: Update copyright year.
+	* lib/printquoted.h: Update copyright year.
+	* lib/qmark.c: Update copyright year.
+	* lib/regexprops.c: Update copyright year.
+	(copying): Update copyright year in the output file, too.
+	* lib/regextype.c: Update copyright year.
+	* lib/regextype.h: Update copyright year.
+	* lib/safe-atoi.c: Update copyright year.
+	* lib/safe-atoi.h: Update copyright year.
+	* lib/savedirinfo.c: Update copyright year.
+	* lib/savedirinfo.h: Update copyright year.
+	* lib/unused-result.h: Update copyright year.
+	* lib/waitpid.c: Update copyright year.
+	* locate/bigram.c: Update copyright year.
+	* locate/code.c: Update copyright year.
+	* locate/frcode.c: Update copyright year.
+	* locate/locate.c: Update copyright year.
+	* locate/locatedb.h: Update copyright year.
+	* locate/word_io.c: Update copyright year.
+	* xargs/xargs.c: Update copyright year.
+	More copyright year updates.
+	* build-aux/ Update copyright year.
+	* m4/noreturn.m4: Update copyright year.
+	* po/ Update copyright year.
+	Update the copyright year in test/documentation files, updatedb.
+	* build-aux/ Update copyright year.
+	* doc/find-maint.texi: Update copyright year.
+	* doc/regexprops.texi: Update copyright year.
+	* find/testsuite/config/unix.exp: Update copyright year.
+	* locate/testsuite/config/unix.exp: Update copyright year.
+	* xargs/testsuite/config/unix.exp: Update copyright year.
+	* locate/ Update copyright year.
+2011-06-03  James Youngman  <>
+	Warn about lack of birth time information only when it's true.
+	* find/pred.c (pred_newerXY): Issue a warning about the inability
+	to get the birth time of a file, only if we actually failed to
+	obtain the birth time of the file.  This is a bugfix; there was a
+	misplaced semicolon after an if condition, so the immediately
+	succeeding block qould be executed unconditionally.
+	Compiler warning fixes in find/pred.c.
+	* find/pred.c (mode_to_filetype): return const char*.
+	(impl_pred_exec): Make target and prefix variables const.
+	(impl_pred_exec): Separate 'target' variable (which sometimes
+	points to a string literal) from a separate 'buf' variable (which,
+	if set, is always the value returned by base_name, which needs to
+	be freed.
+	(checked_fwrite): Store the result of fwrite in a size_t (i.e. the
+	same type the function returns).
+	Eliminate some compiler warnings in parser.c
+	* find/parser.c: Don't define the macros STRINGIFY and
+	(optionh_getfilecon): Make this function static
+	since it is not used elsewhere.
+	(optionl_getfilecon): Likewise.
+	(optionp_getfilecon): Likewise.
+	(found_parser): Likewise.
+	Avoid code redundancy in lib/buildcmd.c.
+	* lib/buildcmd.c (bc_get_arg_max): Recheck val only if we might
+	have changed it (i.e. when ARG_MAX is defined).
+	Eliminate some compiler warnings in find/parser.c.
+	* find/defs.h (struct parser_table): Make parser_name field const.
+	* find/parser.c: Remove redundant declaration of parse_print.
+	(insert_path_check): Change name of parameter pred_name to avoid
+	shadowing the function of that name.
+	(find_parser): Make search_name parameter const.
+	Fix a compiler warning in lib/buildcmd.c
+	* lib/buildcmd.c: special_terminating_arg should be const.
+	Fix compiler warnings in lib/fdleak.c
+	* lib/fdleak.c (visit_open_fds): Rename loop variable from i to j
+	to avoid shadowing.
+	(get_proc_max_fd): Fix definition (it's a void function, not a
+	traditional pre-ANSI function definition).
+	Fix several small compiler warnings.
+	* lib/dircallback.c: Include dircallback.h.
+	* lib/dircallback.h: Correct declaration of run_in_dir.
+	* lib/listfile.c (file_blocksize): Use the otherwise-unused parameter.
+	* find/defs.h: Remove redundant declaration of variable options.
+	Fix some compiler warnings in findutils-version.c.
+	* lib/findutils-version.c: include findutils-version.h.  Make
+	version_string const.  Don't #define N_, since we don't use it.
+	Don't display a separate gnulib version.
+	* lib/findutils-version.c (display_findutils_version): Don't
+	display gnulib_version because it's no longer defined (because
+	there is no gnulib version separate from the findutils version,
+	now that gnulib is a submodule).
+	* import-gnulib.config: remove gnulib_version and destdir, they
+	are not needed any more.
+	* lib/ (EXTRA_DIST): Don't distribute gnulib-version.h
+	or gnulib-version.c.
+	(BUILT_SOURCES): delete, there are no longer any built sources.
+	* lib/gnulib-version.h: Remove.
+	* locate/code.c: Don't include gnulib-version.h
+	* xargs/xargs.c: Don't include gnulib-version.h
+2011-06-01  James Youngman  <>
+	Take the last matching entry in /etc/mtab, not the first.
+	* find/fstype.c (file_system_type_uncached): Instead of taking the
+	first match, take the last match.  This deals better with mtab
+	implementations in which there can be duplicate entries, for
+	example Linux-based systems in which /etc/mtab is a symlink to
+	/proc/mounts) can have duplicate entries in the file system list.
+	This happens most frequently for /.
+	* NEWS: Mention this change.
+2011-06-02  James Youngman  <>
+	Remove unnecessary header checks and include guards.
+	* (AC_CHECK_HEADERS): Remove checks for header files
+	that gnulib either assumes are always present, or provides
+	itself.  These include errno.h fcntl.h inttypes.h limits.h
+	locale.h stddef.h stdint.h stdlib.h string.h sys/types.h
+	unistd.h.
+	* lib/buildcmd.c: Remove include guard for limits.h.
+	* find/fstype.c: Remove include guard for sys/types.h.
+	* lib/savedirinfo.c: Likewise.
+	* find/find.c: Remove include guard for locale.h.
+	* find/ftsfind.c: Likewise.
+2011-06-01  James Youngman  <>
+	Better error handling for the result of set_fstype_devno.
+	* find/fstype.c (file_system_type_uncached): If set_fstype_devno
+	fails for an entry (that is, the device number stays at -1) don't
+	consider it a match.
+	(get_mounted_filesystems): Don't call set_fstype_devno since we
+	don't need to check the device number.
+	(get_mounted_devices): If set_fstype_devno fails for a file
+	system, don't return it.
+2011-05-31  James Youngman  <>
+ now stops if it sees the old directory layout.
+	* (check_old_gnulib_dir_layout): Check the
+	./gnulib-git, ./gnulib/ and ./gl/ subdirectories to figure out if
+	we are using a current version of with an old
+	directory layout.  If so, print an explanation of the problem and
+	return false.
+	(main): stop if check_old_gnulib_dir_layout didn't like the
+	directory layout.
+	Minor fixes in
+	* (fixmsg): Fix punctuation in the commands given
+	for installing the changelog driver.
+	(usage): Explain what the -a option does.
+	(run_gnulib_tool): delete broken symlinks in the output directory,
+	not the gnulib source.
+	(check_merge_driver): fix the path to the ChangeLog merge driver
+	source.
+2011-05-30  James Youngman  <>
+	Manage gnulib as a git submodule.
+	* .gitmodules: New file; manage gnulib as a submodule.  For future
+	compatibility with the "bootstrap" script, keep the gnulib
+	submodule in the gnulib directory (instead of the gnulib-git
+	directory as before).  This means we need to find a new directory
+	for the output of gnulib-tool; we will use "gl" for that.
+	* (do_checkout): Replace with do_submodule.
+	(do_submodule): initialise and configure the gnulib module.
+	(main): call do_submodule instead of do_checkout.  Don't call
+	move_cvsdir, it's obsolete.
+	(move_cvsdir): delete
+	(run_gnulib_tool): change gnulib to ${gldest} (and set that variable).
+	(hack_gnulib_tool_output): generate gl/, not
+	gnulib/
+	(refresh_output_files): Rename gnulib to gl.
+	(update_version_file): Check the state of the submodule.
+	* (SUBDIRS): Rename gnulib to gl.
+	(ACLOCAL_AMFLAGS): Likewise.
+	* lib/ (INCLUDES): Likewise.
+	(LDADD): Likewise.
+	(findutils-check-smells): Rename gnulib-git to gnulib.
+	* find/ (INCLUDES): Change gnulib to gl.
+	(LDADD): Likewise.
+	* xargs/ (INCLUDES): Change gnulib to gl.
+	(LDADD): Likewise.
+	* locate/ (INCLUDES): Rename gnulib to gl.
+	(LDADD): Likewise.
+	* .gitignore: Rename gnulib to gl.
+	* (AC_CONFIG_MACRO_DIR): Change to gl/m4.
+	(AC_CONFIG_FILES): use gl/Makefile and gl/lib/Makefile instead of
+	gnulib/Makefile and gnulib/lib/Makefile.
+	* find/fstype.c: Include gnulib include files as "foo.h", not
+	"../gnulib/lib/foo.h", because the relative path is not needed and
+	in any case has changed.
+2011-05-29  James Youngman  <>
+	Savannah bug #31424: Revert Interix-specific change.
+	Gnulib will use suacomp for solving this problem, so findutils
+	will not need a workaround here.
+	* lib/arg-max.h: Delete this file.
+	* lib/ (libfind_a_SOURCES): Remove arg-max.h.
+	* lib/buildcmd.c: Don't include arg-max.h.
+	* xargs/xargs.c: Likewise.
+2011-05-24  James Youngman  <>
+	Fix Savannah bug #33384.
+	* locate/ Don't reset $PATH, because the hard-coded
+	value we were using isn't guaranteed to contain all the utilities
+	(for example rm, chmod and so on) we would like to use.
+	* NEWS: Mention this bugfix.
+2011-05-22  James Youngman  <>
+	Don't assume that "echo" lives in /bin.
+	* xargs/xargs.c (main): Change default_cmd from "/bin/echo" (which
+	may not be present on some POSIX systems) to "echo" (which must
+	exist somewhere on $PATH on any POSIX system).
+	* doc/find.texi (Multiple Files): document this.
+	* NEWS: Describe this change.
+	* xargs/testsuite/xargs.sysv/empty_def-t.xe: Change /bin/echo to
+	echo.
+	* xargs/testsuite/xargs.gnu/n2-s26-x-0.exp: Change -s26 to -s21 to
+	keep the expected test result the same.  Rename the test to
+	reflect the updated arguments.
+	* xargs/testsuite/xargs.gnu/n2-s26-x-0.xo: Rename to
+	n2-s21-x-0.xo.
+	* xargs/testsuite/xargs.gnu/n2-s26-0.exp: Rename to n2-s21-0.exp,
+	update -s argument.
+	* xargs/testsuite/xargs.posix/s30.exp: Rename to s25.exp, update -s.
+	* xargs/testsuite/xargs.posix/s30.xo: Rename to s25.xo.
+	* xargs/testsuite/xargs.gnu/s30-0.exp: Rename to s25-0.exp, update
+	-s argument.
+	* xargs/testsuite/xargs.gnu/s30-0.xo: Rename to s25-0.xo.
+	* xargs/testsuite/xargs.sysv/s30-t.exp: Rename to s25-t.exp,
+	update -s.
+	* xargs/testsuite/xargs.sysv/s30-t.xo: Rename to s25-t.xo.
+	* xargs/testsuite/xargs.sysv/s30-t.xe: Rename to s25-t.xe, change
+	/bin/echo to just echo.
+	* xargs/testsuite/xargs.posix/s47.exp: Rename to s42.exp, update -s.
+	* xargs/testsuite/xargs.posix/s47.xo: Rename to s42.xo.
+	* xargs/testsuite/xargs.gnu/n3-s36-0.exp: Rename to n3-s31-0.exp,
+	update -s.
+	* xargs/testsuite/xargs.gnu/n3-s36-0.xo: Rename to n3-s31-0.xo.
+	* xargs/testsuite/xargs.gnu/s20-0.exp: Rename to s15-0.exp, update
+	-s.
+	* xargs/testsuite/xargs.gnu/s20-0.xo: Rename to s15-0.xo.
+	* xargs/testsuite/xargs.posix/n2-s26.exp: Rename to n2-s21.exp,
+	update -s.
+	* xargs/testsuite/xargs.posix/n2-s26.xo: Rename to n2-s21.xo.
+	* xargs/testsuite/xargs.gnu/s19-0.exp: Rename to s14-0.exp, update
+	-s.
+	* xargs/testsuite/xargs.gnu/s19-0.xo: Rename to s14-0.xo.
+	* xargs/testsuite/xargs.gnu/s19_2-0.exp: Rename to s14_2-0.exp,
+	update -s.
+	* xargs/testsuite/xargs.gnu/s19_2-0.xo: Rename to s14_2-0.xo.
+	* xargs/testsuite/xargs.posix/n3-s36.exp: Rename to n3-s31.exp,
+	update -s.
+	* xargs/testsuite/xargs.posix/n3-s36.xo: Rename to n3-s31.xo.
+	* xargs/testsuite/xargs.posix/s19.exp: Rename to s14.exp, update
+	-s.
+	* xargs/testsuite/xargs.posix/s19.xo: Rename to s14.xo.
+	* xargs/testsuite/xargs.posix/s19_2.exp: Rename to s14_2.exp,
+	update -s.
+	* xargs/testsuite/xargs.posix/s19_2.xo: Rename to s14_2.xo.
+	* xargs/testsuite/xargs.posix/s20.exp: Rename to s15.exp,
+	update -s.
+	* xargs/testsuite/xargs.posix/s20.xo: Rename to s15.xo.
+	* xargs/testsuite/ (EXTRA_DIST_XO): Update names.
+	(EXTRA_DIST_EXP): Likewise.
+2011-05-17  James Youngman  <>
+	Document ftsfind/oldfind and configure options.
+	* doc/find.texi (Configuration): New section documenting the
+	important configuration options that can be passed to configure,
+	including --without-fts.
+	* find/find.1 (BINARIES): New section explaining why two binaries
+	are installed.
+	* find/oldfind.1: New manual page explaining how 'oldfind' is
+	different to 'find'.
+	* find/ftsfind.1: New manual page explaining how 'ftsfind' is
+	different to 'find'.
+	* find/ (man_MANS): As well as find.1, install one of
+	ftsfind.1 or oldfind.1, depending on whether --without-fts was
+	specified to configure.
+	* NEWS: Mention this change.
+2011-05-15  James Youngman  <>
+	Add lib/fdleak.c to translatable files.
+	* po/ Add lib/fdleak.c.
+	Fix Savannah bug #18227 (-ls doesn't print device major/minor).
+	* lib/listfile.c (list_file): check HAVE_STRUCT_STAT_ST_RDEV
+	instead of HAVE_ST_RDEV, fixing this bug.  HAVE_ST_RDEV was
+	defined by the obsolete Autoconf macro AC_STRUCT_ST_RDEV, but
+	findutils hasn't actually called AC_STRUCT_ST_RDEV since Apr 5
+	2000.
+	* NEWS: Mention this bugfix.
+	#29698: Correct and clarify documentation of xargs -d option
+	* xargs/xargs.1: Update documentation for -d option to more
+	clearly distinguish the treatment of backslashes in the input and
+	the treatment of backslashes in the argument to -d.
+	* NEWS: Mention this bugfix.
+	Implement xargs --process-slot-var.
+	* xargs/xargs.c (set_slot_var): New function; sets an environment
+	variable to the index of the entry in pids[] that represents the
+	relevant child process.  This can be used in rudimentary load
+	distribution systems.
+	(slot_var_name): the name of the variable to use (selected by
+	--process-slot-var).
+	(enum LongOptionIdentifier): Unique identifiers for long options
+	with no short option equivalent (--process-slot-var is the first).
+	(longopts): Add --process-slot-var.
+	(add_proc): return the index within pids[] that we selected.
+	(main): Pass &option_index to getopt_long (option_index is a new
+	variable) in order to identify which long option was passed.
+	Handle --process-slot-var.
+	(prep_child_for_exec): Call set_slot_var.
+	(usage): Mention --process-slot-var.
+	* doc/find.texi (xargs options): Document --process-slot-var.
+	* xargs/xargs.1: Likewise.
+	* NEWS: Mention this change and that it was Savannah bug #29512.
+	Describe xargs options in alphabetical order.
+	* xargs/xargs.1: Re-order the options to place them in
+	alphabetical order.  Put --help and --version at the end.
+	* xargs/xargs.c (usage): Describe the options in alphabeitcal
+	order.
+	* NEWS: Mention this change.
+	Fix bug #14386: updatedb relies on mktemp, which is not portable.
+	* locate/ (make_tempdir): new function, works around
+	the possible absence of mktemp.  We now create the file list and
+	the bigrams file in a temporary directory.  Also add some quoting
+	for a few shell variables.  Update the copyright years.
+	* locate/testsuite/locate.gnu/oldformat.exp: Add a test case which
+	uses the old database format, in order to exercise our mktemp
+	replacement.
+	* locate/testsuite/ (EXTRA_DIST_EXP): Ship this new
+	file.
+	* locate/testsuite/locate.gnu/oldformat.xo: The expected output
+	for the new test.
+	* locate/testsuite/ (EXTRA_DIST_XO): Ship this new
+	file.
+	* NEWS: Mention this bugfix.
+2011-05-14  James Youngman  <>
+	Fix bug #32043 (fnmatch should treat unquoted [ literally).
+	* import-gnulib.config (gnulib_version): Update gnulib to the
+	version which includes the fnmatch fix (a backport of glibc bug
+	#12378).  This fixes our bug too.
+	* find/testsuite/ New (non-DejaGnu) test script.
+	Tests Savannah bug #32043 (POSIX requires that an unquoted [
+	should be matched literally).
+	* find/testsuite/ (TESTS): Add
+	(EXTRA_DIST): Distribute
+	* NEWS: Mention this bugfix.
+2011-05-11  James Youngman  <>
+	Move on from 4.5.10, to 4.5.11-git.
+	* NEWS, update version number.
+	Prepare for release of findutils-4.5.10.
+	* NEWS: Update version number to 4.5.10 to prepare for that
+	release.  Add a release date (2011-05-11).
+	* Also update version number.
+	* po/*.po, po/findutils.pot: make dist changes these.
+	Savannah bug #30608 (Automagic dependency on selinux) is fixed.
+	* NEWS: Mention that Savannah bug #30608 (Automagic dependency on
+	selinux) is fixed.  The gnulib update on 2011-04-02 will have
+	included gnulib change 83e52ee5a420f8b552745a72e5869001b0f6da60
+	which fixes this problem.  The configure script now provides a
+	--without-selinux option.
+	Update Estonian translation.
+	* po/et.po: Update from the Translation Project.
+2010-05-24  Kamil Dudka  <>
+	Fix Savannah bug #29949, -execdir does not change working directory.
+	* find/pred.c (record_exec_dir): Do not throw the execdir when not
+	working in the cumulative mode.
+	* find/testsuite/find.gnu/execdir-multiple.exp: Add a test-case for
+	the bug #29949.
+	* NEWS: Mention this bugfix.
+2011-04-02  James Youngman  <>
+	Change "can not" to "cannot".
+	* lib/buildcmd.c (bc_push_arg): "can not" -> "cannot" in message.
+	* find/tree.c: Likewise in a comment.
+	Update Danish translation.
+	* po/da.po: Likewise.
+	Update Slovenian, German, Estonian, French, Japanese translations.
+	* po/sl.po: Updated from the Translation Project.
+	* po/de.po: Likewise.
+	* po/et.po: Likewise.
+	* po/fr.po: Likewise.
+	* po/ja.po: Likewise.
+	Update to the current version of gnulib.
+	* import-gnulib.config (gnulib_version): Update to the current
+	version of gnulib.
+	* Update to gettext 0.18.1.
+	* po/Rules-quot: Update this file from gettext.
+	Use parse-datetime instead of the obsolete module getdate.
+	* import-gnulib.config (modules): Import the gnulib module
+	parse-datetime instead of the obsolete module getdate.
+	* find/parser.c: Include parse-datetime.h instead of getdate.h.
+	* doc/find.texi: Include parse-datetime.texi instead of
+	getdate.texi.
+	* doc/ (find_TEXINFOS): Use parse-datetime.texi instead
+	of getdate.texi.
+2010-10-23  James Youngman  <>
+	Savannah bug #31424: Work around Interix bug in _SC_ARG_MAX,
+	in which execve will fail with ENOMEM if we use a command line
+	somewhere between ARG_MAX and _SC_ARG_MAX.
+	* lib/arg-max.h: New file: undefine _SC_ARG_MAX if we cannot rely
+	on the value that sysconf produces.
+	* lib/ (libfind_a_SOURCES): Add arg-max.h.
+	* lib/buildcmd.c: #include arg-max.h.
+	* xargs/xargs.c: Likewise.
+2010-10-21  James Youngman  <>
+	Fix Savannah bug #31359: FAIL: test-strstr on alpha.
+	* import-gnulib.config (gnulib_version): Update the version of
+	gnulib.
+	* NEWS: Mention this bugfix.
+2010-10-11  James Youngman  <>
+	* doc/find.texi (Further Reading on Security): Give some
+	references to further reading on security.
+	* NEWS: Mention this change.
+2010-08-16  James Youngman  <>
+	Fix Savannah bug #30777.
+	* find/parser.c (insert_exec_ok): Fail if {} appears in an
+	argument between -exec ... \+ but it's not the whole argument
+	(that is, reject "FOO{}").  Previously the FOO prefix was accepted
+	but ignored, which is probably POSIX-incompliant and certainly
+	surprising.
+	* find/testsuite/find.posix/sv-bug-30777.exp: New test case for
+	Savannah bug #30777.
+	* find/testsuite/ (EXTRA_DIST_EXP): Add
+	find.posix/sv-bug-30777.exp.
+2010-08-15  James Youngman  <>
+	Fix Savannah bug #30180, wrong error message for -size b300
+	* find/parser.c (parse_size): Don't print a suffix in the error
+	message if no suffix was specified.
+	* NEWS: Mention this change.
+	* po/da.po: Update Danish translation.
+2010-05-11  John Gilmore  <>
+	Fix bug arising when we receive SIGUSR2.
+	* xargs/xargs.c (xargs_do_exec): Don't assume that proc_max won't
+	decrease while we are waiting for a process to exit.  This happens
+	if we receive SIGUSR2.
+2010-05-09  James Youngman  <>
+	* xargs/xargs.1: Refer to signal(7) rather than signal(2).
+2010-05-08  John Gilmore  <>
+	Control xargs parallelism with SIGUSR1/SIGUSR2.
+	* xargs/xargs.c: Increase parallelism in mid-run with SIGUSR1;
+	decrease it with SIGUSR2.
+	* doc/find.texi, xargs/xargs.1, NEWS: Document SIGUSR1/2.
+2010-05-09  Sergei Golovan  <> (tiny change)
+	Fix Savannah bug #29828, test suite deadlock on FreeBSD.
+	* find/testsuite/find.gnu/sv-bug-24169.exp: Read find output until
+	eof before calling wait, in order to avoid a deadlock on FreeBSD.
+2010-05-08  Andreas Metzler  <>
+	Fix a typo.  Use "\-" in nroff, rather than a naked "-".
+	* find/parser.c (check_option_combinations): Fix typo
+	"atomatically".
+	* find/find.1 (-name): protect nroff hyphens with backslashes.
+	* locate/locatedb.5: Likewise.
+2010-05-07  James Youngman  <>
+	* AUTHORS: Add Kamil Dudka.
+2010-05-07  Kamil Dudka  <>
+	* lib/dircallback.c (run_in_dir): Make sure that if the callback
+	doesn't get run, the return value is nonzero.  Make sure that if
+	the directory save/restore fails, we don't overwrite errno with a
+	random value (and hence report some unrelated and nonexistent
+	error, instead of the real problem).  Restore the previous current
+	directory.
+2010-05-04  James Youngman  <>
+	Bugfix: make sure make distdir works in VPATH directly after configure
+	* locate/ (EXTRA_DIST): Add dblocation.texi.
+	(dblocation.texi): Always rebuild, but don't replace the existing
+	version if the content would not change.
+2010-04-30  James Youngman  <>
+	Update Finnish and Italian translations.
+	* po/fi.po: Updated Finnish translation.
+	* po/it.po: Updated Italian translation.
+	* NEWS: Mention these updates.
+	Move on from 4.5.9.
+	* NEWS: Bump the version number from 4.5.9 to 4.5.10-git.
+	* Likewise.
+2010-04-29  James Youngman  <>
+	Prepare for the release of findutils version 4.5.9.
+	* NEWS: Change the version number to 4.5.9.
+	* Likewise.
+	Preserve locate/dblocation.texi during 'make clean'.
+	* locate/ (DISTCLEANFILES): Clean dblocation.texi for
+	'make distclean', but not 'make clean'.
+2010-04-18  James Youngman  <>
+	Remove redundant declarations.
+	* locate/frcode.c: Don't declare xmalloc, include xalloc.h instead.
+	* locate/code.c: Don't declare program_name, we already included
+	progname.h.
+	Remove support for compilers lacking prototypes.
+	* find/defs.h: Don't define or use the PARAMS macro.
+	* xargs/xargs.c: Likewise.
+	* locate/locatedb.h: Likewise.
+	* locate/frcode.c: Likewise.
+	* lib/buildcmd.c: Likewise.
+	* find/tree.c: Likewise.
+	* find/pred.c: Likewise.
+	* find/parser.c: Likewise.
+	* find/fstype.c: Likewise.
+	* find/find.c: Likewise.
+2010-04-21  James Youngman  <>
+	Update Chinese (simplified) translation.
+	* po/zh_CN.po: Updated from the Translation Project.
+	* NEWS: Mention this change.
+2010-04-18  James Youngman  <>
+	Fix Savannah bug #29593: Make work under a POSIX shell.
+	* Remove bash-specific '[[...]]' tests; instead
+	use '[...]'.
+	* NEWS: Mention this bugfix.
+2010-04-17  James Youngman  <>
+	Remove obsolete module strpbrk.
+	* import-gnulib.config (modules): Remove strpbrk.
+	* locate/ (locate_TEXINFOS): Add dblocation.texi.
+2010-04-13  James Youngman  <>
+	Correct some test file names.
+	* find/testsuite/ (EXTRA_DIST_EXP):
+	find.gnu/sv-bug-25359-execdir.exp should in fact be
+	find.gnu/sv-bug-27563-execdir.exp and
+	find.posix/sv-bug-25359-exec.exp should be
+	find.posix/sv-bug-27563-exec.exp.
+	* .x-sc_prohibit_test_minus_ao: Condense the file (since the
+	entries are regular expressions anyway).
+	* .x-sc_prohibit_empty_lines_at_EOF: New file; exceptions for the
+	sc_prohibit_empty_lines_at_EOF syntax check.
+2010-04-11  James Youngman  <>
+	Make sure we don't open a file on a standard fd (that is, 0/1/2).
+	* lib/fdleak.c: Include fcntl--.h to turn calls to open into calls
+	to open_safer.
+	* find/find.c: Likewise.
+	After-the-fact change to NEWS for 4.5.8: fixed bug 27974.
+	* NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use
+	gnulib's xreadlinkat support), though the NEWS file in that
+	release omitted to say so.
+	Fix Savannah bug #29511: fails to build on kfreebsd-*
+	* lib/fdleak.c (get_max_fd): Don't use RLIM_SAVED_MAX or
+	RLIM_SAVED_CUR.  Not only are they non-portable, they aren't
+	useful.
+	* NEWS: Mention this bugfix.
+	Remove some unused or dead code.
+	* find/util.c (hook_fstatat): This has been disabled and unused
+	for a long time, delete it.
+	* find/find.c (process_dir): Remove some unused debug code.
+	* find/tree.c (predlist_insert): Remove some dead code.
+	* lib/fdleak.c (complain_about_leaky_fds): Remove some unused
+	debug code.
+	Add a test case for Savannah bug 27563 (-L breaks -execdir).
+	* find/testsuite/ (EXTRA_DIST_EXP): Add
+	find.gnu/sv-bug-27563-execdir.exp and
+	find.posix/sv-bug-27563-exec.exp.
+	(EXTRA_DIST_XO): Add find.gnu/sv-bug-27563-execdir.xo and
+	find.posix/sv-bug-27563-exec.xo.
+	* find/testsuite/find.gnu/sv-bug-27563-execdir.exp: New test.
+	* find/testsuite/find.posix/sv-bug-27563-exec.exp: New test.
+	* find/testsuite/find.gnu/sv-bug-27563-execdir.xo: Expected output.
+	* find/testsuite/find.posix/sv-bug-27563-exec.xo: Expected output.
+	Fix Savannah bug #27563, -L breaks -execdir.
+	* find/pred.c (initialise_wd_for_exec): New function, factoring
+	out part of the body of record_exec_dir.
+	(record_exec_dir): If state.rel_pathname contains a /, extract the
+	directory part and initialise execp->wd_for_exec to point at that
+	directory.
+	(impl_pred_exec): Rename new_impl_pred_exec to impl_pred_exec.
+	Drop the prefix and pfxlen parameters.  Compute the base name of
+	the target and pass that to the bc_push_arg function instead of
+	state.rel_pathname.  Deal with state.rel_pathname being an
+	absolute path (e.g. find / -execdir...).  Introduce a new
+	variable, result, allowing us to free the buffer used for the base
+	name in the return path.
+	(pred_exec): Don't pass the prefix and the prefix length any more.
+	(pred_execdir): Likewise.
+	(pred_ok): Likewise.
+	(pred_okdir): Likewise.
+2010-04-10  James Youngman  <>
+	Fix Savannah bug #19593, -execdir .... {} + has suboptimal performance
+	* find/ftsfind.c (consider_visiting): Don't call
+	complete_pending_execdirs for every file we visit.
+	(find): Instead, call complete_pending_execdirs every time we
+	see a file which isn't at the same nesting level as the previous
+	file we saw.  This is an improvement but not optimal (since
+	descending into a subdirectory will cause us to issue an exec
+	before we've finished with the current directory).
+	* NEWS: Mention this change.
+        Exec predicates now store which directory they want to run in.
+        * lib/dircallback.c (run_in_dirfd): New name for old run_in_dir
+        function.
+        (run_in_dir): Like the old function of the same name, but now
+        takes an argument const struct saved_cwd *.
+        * lib/dircallback.h: Update declarations of run_in_dirfd and
+        run_in_dir.
+        * find/util.c: Include dircallback.h, xalloc.h, save-cwd.h.
+        (do_complete_pending_execdirs): Remove dir_fd parameter, since the
+        per-predicate data structures now indicate what directory they
+        need to be run in.  Instead of calling bc_do_exec directly, use a
+        callback 'exec_cb' that uses run_in_dir (which now takes a
+        saved_cwd* parameter instead of a file descriptor).
+        (do_exec): Called by do_complete_pending_execdirs, and simply uses
+        run_in_dir to call exec_cb, restoring the working directory
+        afterward.
+        (record_initial_cwd): New function, initialises the global
+        variable initial_wd.
+        (cleanup_initial_cwd): New function, cleans up the global variable
+        initial_wd.
+        (cleanup): Call cleanup_initial_cwd.
+        (get_start_dirfd): Remove.
+        (is_exec_in_local_dir): New function; true for predicates -execdir
+        and -okdir.
+        * find/pred.c: Include cloexec.h and save-cwd.h.
+        (record_exec_dir): New function, sets the value of
+        execp->wd_for_exec if needed.
+        (new_impl_pred_exec): Remove the obsolete dir_fd parameter.  Call
+        record_