diff -Nru libsignatures-perl-0.13/Changes libsignatures-perl-0.14/Changes --- libsignatures-perl-0.13/Changes 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/Changes 2019-05-03 05:39:46.000000000 +0000 @@ -1,5 +1,8 @@ Revision history for signatures +0.14 2019-05-03 05:39:41Z + - properly clear PL_lex_stuff (perl RT#134058, Dave Mitchell) + 0.13 2015-07-28 06:35:39Z - bump minimum version of B::Hooks::Parser for ::Install::Files diff -Nru libsignatures-perl-0.13/CONTRIBUTING libsignatures-perl-0.14/CONTRIBUTING --- libsignatures-perl-0.13/CONTRIBUTING 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/CONTRIBUTING 2019-05-03 05:39:46.000000000 +0000 @@ -27,7 +27,7 @@ You may need to satisfy some dependencies. The easiest way to satisfy dependencies is to install the last release -- this is available at -https://metacpan.org/release/signatures. +https://metacpan.org/release/signatures If you use cpanminus, you can do it without downloading the tarball first: @@ -75,15 +75,22 @@ The code for this distribution is hosted at GitHub. The repository is: https://github.com/karenetheridge/signatures You can submit code changes by forking the repository, pushing your code -changes to your clone, and then submitting a pull request. Detailed -instructions for doing that is available here: +changes to your clone, and then submitting a pull request. Please include a +suitable end-user-oriented entry in the Changes file describing your change. +Detailed instructions for doing that is available here: https://help.github.com/articles/creating-a-pull-request +All pull requests for this distribution will be automatically tested on Linux +by Travis at: https://travis-ci.com/karenetheridge/signatures +Results will be visible in the pull request on GitHub. Follow the appropriate +links for details when tests fail. Changes will not be mergeable until all +tests pass. + If you have found a bug, but do not have an accompanying patch to fix it, you can submit an issue report here: https://rt.cpan.org/Public/Dist/Display.html?Name=signatures -or via bug-signatures@rt.cpan.org. +or via email: bug-signatures@rt.cpan.org This is a good place to send your questions about the usage of this distribution. If you send me a patch or pull request, your name and email address will be @@ -93,5 +100,5 @@ request to the .mailmap file to contain the correct mapping. -This file was generated via Dist::Zilla::Plugin::GenerateFile::ShareDir 0.006 from a -template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.100. +This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.014 +from a template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.148. diff -Nru libsignatures-perl-0.13/debian/changelog libsignatures-perl-0.14/debian/changelog --- libsignatures-perl-0.13/debian/changelog 2019-10-19 10:37:53.000000000 +0000 +++ libsignatures-perl-0.14/debian/changelog 2019-10-07 14:40:45.000000000 +0000 @@ -1,14 +1,20 @@ -libsignatures-perl (0.13-2build2) focal; urgency=medium +libsignatures-perl (0.14-1) unstable; urgency=medium - * No-change rebuild for the perl update. + * Team upload. - -- Matthias Klose Sat, 19 Oct 2019 10:37:53 +0000 + [ Salvatore Bonaccorso ] + * Update Vcs-* headers for switch to salsa.debian.org -libsignatures-perl (0.13-2build1) disco; urgency=medium + [ gregor herrmann ] + * Import upstream version 0.14. + Fixes failures with perl 5.29+. + * Annotate test-only build dependencies with . + * Declare compliance with Debian Policy 4.4.1. + * Bump debhelper-compat to 12. + * debian/watch: use uscan version 4. + * Remove obsolete fields Name, Contact from debian/upstream/metadata. - * No-change rebuild for the perl 5.28 transition. - - -- Adam Conrad Fri, 02 Nov 2018 19:47:24 -0600 + -- gregor herrmann Mon, 07 Oct 2019 16:40:45 +0200 libsignatures-perl (0.13-2) unstable; urgency=medium diff -Nru libsignatures-perl-0.13/debian/compat libsignatures-perl-0.14/debian/compat --- libsignatures-perl-0.13/debian/compat 2018-01-21 19:05:14.000000000 +0000 +++ libsignatures-perl-0.14/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -11 diff -Nru libsignatures-perl-0.13/debian/control libsignatures-perl-0.14/debian/control --- libsignatures-perl-0.13/debian/control 2018-01-21 19:05:14.000000000 +0000 +++ libsignatures-perl-0.14/debian/control 2019-10-07 14:40:45.000000000 +0000 @@ -4,17 +4,17 @@ Section: perl Testsuite: autopkgtest-pkg-perl Priority: optional -Build-Depends: debhelper (>= 11~), - libb-hooks-endofscope-perl, - libb-hooks-op-check-perl (>= 0.18), +Build-Depends: debhelper-compat (= 12), + libb-hooks-endofscope-perl , + libb-hooks-op-check-perl (>= 0.18) , libb-hooks-op-ppaddr-perl (>= 0.03), libb-hooks-parser-perl (>= 0.16), libextutils-depends-perl (>= 0.302), - libperl6-junction-perl, + libperl6-junction-perl , perl -Standards-Version: 4.1.3 -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libsignatures-perl.git -Vcs-Git: https://anonscm.debian.org/git/pkg-perl/packages/libsignatures-perl.git +Standards-Version: 4.4.1 +Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libsignatures-perl +Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libsignatures-perl.git Homepage: https://metacpan.org/release/signatures Rules-Requires-Root: no diff -Nru libsignatures-perl-0.13/debian/upstream/metadata libsignatures-perl-0.14/debian/upstream/metadata --- libsignatures-perl-0.13/debian/upstream/metadata 2018-01-21 19:05:14.000000000 +0000 +++ libsignatures-perl-0.14/debian/upstream/metadata 2019-10-07 14:40:45.000000000 +0000 @@ -1,8 +1,5 @@ ---- Archive: CPAN Bug-Database: https://rt.cpan.org/Public/Dist/Display.html?Name=signatures Bug-Submit: bug-signatures@rt.cpan.org -Contact: Florian Ragwitz -Name: signatures Repository: https://github.com/karenetheridge/signatures.git Repository-Browse: https://github.com/karenetheridge/signatures diff -Nru libsignatures-perl-0.13/debian/watch libsignatures-perl-0.14/debian/watch --- libsignatures-perl-0.13/debian/watch 2018-01-21 19:05:14.000000000 +0000 +++ libsignatures-perl-0.14/debian/watch 2019-10-07 14:40:45.000000000 +0000 @@ -1,2 +1,2 @@ -version=3 -https://metacpan.org/release/signatures .*/signatures-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ +version=4 +https://metacpan.org/release/signatures .*/signatures-v?@ANY_VERSION@@ARCHIVE_EXT@$ diff -Nru libsignatures-perl-0.13/dist.ini libsignatures-perl-0.14/dist.ini --- libsignatures-perl-0.13/dist.ini 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/dist.ini 2019-05-03 05:39:46.000000000 +0000 @@ -5,9 +5,11 @@ license = Perl_5 [@Author::ETHER] -:version = 0.095 +:version = 0.119 installer = none -Authority.authority = cpan:FLORA +authority = cpan:FLORA +StaticInstall.mode = off +Test::ReportPrereqs.include = DynaLoader [MakeMaker::Awesome] :version = 0.27 diff -Nru libsignatures-perl-0.13/INSTALL libsignatures-perl-0.14/INSTALL --- libsignatures-perl-0.13/INSTALL 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/INSTALL 2019-05-03 05:39:46.000000000 +0000 @@ -8,10 +8,10 @@ % cpanm signatures -If you are installing into a system-wide directory, you may need to pass the -"-S" flag to cpanm, which uses sudo to install the module: - - % cpanm -S signatures +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. ## Installing with the CPAN shell @@ -22,7 +22,7 @@ ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, -then build it: +install configure prerequisites (see below), then build it: % perl Makefile.PL % make && make test @@ -31,13 +31,42 @@ % make install -If you are installing into a system-wide directory, you may need to run: +On Windows platforms, you should use `dmake` or `nmake`, instead of `make`. + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +The prerequisites of this distribution will also have to be installed manually. The +prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated +by running the manual build process described above. + +## Configure Prerequisites + +This distribution requires other modules to be installed before this +distribution's installer can be run. They can be found under the +"configure_requires" key of META.yml or the +"{prereqs}{configure}{requires}" key of META.json. - % sudo make install +## Other Prerequisites + +This distribution may require additional modules to be installed after running +Makefile.PL. +Look for prerequisites in the following phases: + +* to run make, PHASE = build +* to use the module code itself, PHASE = runtime +* to run tests, PHASE = test + +They can all be found in the "PHASE_requires" key of MYMETA.yml or the +"{prereqs}{PHASE}{requires}" key of MYMETA.json. ## Documentation signatures documentation is available as POD. -You can run perldoc from a shell to read the documentation: +You can run `perldoc` from a shell to read the documentation: % perldoc signatures + +For more information on installing Perl modules via CPAN, please see: +https://www.cpan.org/modules/INSTALL.html diff -Nru libsignatures-perl-0.13/lib/signatures.pm libsignatures-perl-0.14/lib/signatures.pm --- libsignatures-perl-0.13/lib/signatures.pm 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/lib/signatures.pm 2019-05-03 05:39:46.000000000 +0000 @@ -1,9 +1,9 @@ use strict; use warnings; -package signatures; # git description: v0.12-5-gde90008 +package signatures; # git description: v0.13-13-gf19ea86 # ABSTRACT: Subroutine signatures with no source filter -our $VERSION = '0.13'; +our $VERSION = '0.14'; use XSLoader; use B::Hooks::Parser 0.12; @@ -105,7 +105,7 @@ =head1 VERSION -version 0.13 +version 0.14 =head1 SYNOPSIS @@ -174,7 +174,7 @@ =for Pod::Coverage setup setup_for teardown teardown_for -=head1 BUGS +=head1 LIMITATIONS =over 4 @@ -193,18 +193,34 @@ =head1 SEE ALSO +=over 4 + +=item * + L +=item * + L +=item * + L +=item * + L +=item * + L +=item * + L +=back + =head1 THANKS =for stopwords Moritz Lenz Steffen Schwigon @@ -212,13 +228,18 @@ Moritz Lenz and Steffen Schwigon for documentation review and improvement. +=head1 SUPPORT + +Bugs may be submitted through L +(or L). + =head1 AUTHOR Florian Ragwitz =head1 CONTRIBUTORS -=for stopwords Karen Etheridge Peter Martini Alexandr Ciornii Father Chrysostomos Alex Kapranoff Steffen Schwigon +=for stopwords Karen Etheridge Peter Martini Father Chrysostomos Alex Kapranoff Steffen Schwigon Alexandr Ciornii Dave Mitchell =over 4 @@ -232,10 +253,6 @@ =item * -Alexandr Ciornii - -=item * - Father Chrysostomos =item * @@ -246,9 +263,17 @@ Steffen Schwigon +=item * + +Alexandr Ciornii + +=item * + +Dave Mitchell + =back -=head1 COPYRIGHT AND LICENSE +=head1 COPYRIGHT AND LICENCE This software is copyright (c) 2008 by Florian Ragwitz. diff -Nru libsignatures-perl-0.13/LICENCE libsignatures-perl-0.14/LICENCE --- libsignatures-perl-0.13/LICENCE 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/LICENCE 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,379 @@ +This software is copyright (c) 2008 by Florian Ragwitz. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2008 by Florian Ragwitz. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute 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 and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: 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 humanity, 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 convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision 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, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2008 by Florian Ragwitz. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff -Nru libsignatures-perl-0.13/LICENSE libsignatures-perl-0.14/LICENSE --- libsignatures-perl-0.13/LICENSE 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/LICENSE 1970-01-01 00:00:00.000000000 +0000 @@ -1,379 +0,0 @@ -This software is copyright (c) 2008 by Florian Ragwitz. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2008 by Florian Ragwitz. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, 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 make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute 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 and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the 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 a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: 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 humanity, 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 convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision 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, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2008 by Florian Ragwitz. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff -Nru libsignatures-perl-0.13/Makefile.PL libsignatures-perl-0.14/Makefile.PL --- libsignatures-perl-0.13/Makefile.PL 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/Makefile.PL 2019-05-03 05:39:46.000000000 +0000 @@ -1,5 +1,5 @@ # This Makefile.PL for signatures was generated by -# Dist::Zilla::Plugin::MakeMaker::Awesome 0.34. +# Dist::Zilla::Plugin::MakeMaker::Awesome 0.48. # Don't edit it but the dist.ini and plugins used to construct it. use strict; @@ -45,11 +45,11 @@ "B::Deparse" => 0, "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, - "Test::More" => 0, + "Test::More" => "0.88", "base" => 0, "vars" => 0 }, - "VERSION" => "0.13", + "VERSION" => "0.14", "test" => { "TESTS" => "t/*.t" } @@ -65,11 +65,10 @@ "B::Hooks::EndOfScope" => "0.08", "B::Hooks::OP::Check" => "0.17", "B::Hooks::OP::PPAddr" => "0.03", - "B::Hooks::Parser" => "0.15", - "ExtUtils::Depends" => "0.302", + "B::Hooks::Parser" => "0.12", "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, - "Test::More" => 0, + "Test::More" => "0.88", "XSLoader" => 0, "base" => 0, "strict" => 0, @@ -77,7 +76,7 @@ "warnings" => 0 ); -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { +unless ( eval { ExtUtils::MakeMaker->VERSION('6.63_03') } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; diff -Nru libsignatures-perl-0.13/MANIFEST libsignatures-perl-0.14/MANIFEST --- libsignatures-perl-0.13/MANIFEST 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/MANIFEST 2019-05-03 05:39:46.000000000 +0000 @@ -1,8 +1,8 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.037. +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. CONTRIBUTING Changes INSTALL -LICENSE +LICENCE MANIFEST META.json META.yml @@ -24,17 +24,18 @@ t/warnings.t t/weird.t xt/author/00-compile.t +xt/author/changes_has_content.t xt/author/clean-namespaces.t xt/author/eol.t xt/author/kwalitee.t +xt/author/minimum-version.t xt/author/mojibake.t xt/author/no-tabs.t +xt/author/pod-coverage.t +xt/author/pod-no404s.t xt/author/pod-spell.t +xt/author/pod-syntax.t +xt/author/portability.t xt/release/changes_has_content.t xt/release/cpan-changes.t xt/release/distmeta.t -xt/release/minimum-version.t -xt/release/pod-coverage.t -xt/release/pod-no404s.t -xt/release/pod-syntax.t -xt/release/portability.t diff -Nru libsignatures-perl-0.13/META.json libsignatures-perl-0.14/META.json --- libsignatures-perl-0.13/META.json 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/META.json 2019-05-03 05:39:46.000000000 +0000 @@ -4,7 +4,7 @@ "Florian Ragwitz " ], "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 5.037, CPAN::Meta::Converter version 2.150005", + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -15,9 +15,9 @@ "name" : "signatures", "no_index" : { "directory" : [ + "inc", "t", - "xt", - "inc" + "xt" ] }, "prereqs" : { @@ -33,29 +33,82 @@ }, "develop" : { "recommends" : { - "Dist::Zilla::PluginBundle::Author::ETHER" : "0.100" + "Dist::Zilla::PluginBundle::Author::ETHER" : "0.148", + "Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007" }, "requires" : { "Devel::PPPort" : "3.23", + "Encode" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Pod::Coverage::TrustPod" : "0", + "Pod::Wordlist" : "0", + "Test::CPAN::Changes" : "0.19", + "Test::CPAN::Meta" : "0", + "Test::CleanNamespaces" : "0.15", + "Test::EOL" : "0", + "Test::Kwalitee" : "1.21", + "Test::MinimumVersion" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.96", + "Test::NoTabs" : "0", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::No404s" : "0", + "Test::Portability::Files" : "0", + "Test::Spelling" : "0.12", + "perl" : "5.006" + } + }, + "runtime" : { + "requires" : { + "B::Hooks::EndOfScope" : "0.08", + "B::Hooks::OP::Check" : "0.17", + "B::Hooks::OP::PPAddr" : "0.03", + "B::Hooks::Parser" : "0.12", + "XSLoader" : "0", + "perl" : "5.006", + "strict" : "0", + "warnings" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "B::Deparse" : "0", + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "Test::More" : "0.88", + "base" : "0", + "perl" : "5.006", + "vars" : "0" + } + }, + "x_Dist_Zilla" : { + "requires" : { "Dist::Zilla" : "5", "Dist::Zilla::Plugin::Authority" : "1.009", - "Dist::Zilla::Plugin::AuthorityFromModule" : "0.002", "Dist::Zilla::Plugin::AutoMetaResources" : "0", - "Dist::Zilla::Plugin::AutoPrereqs" : "0", + "Dist::Zilla::Plugin::AutoPrereqs" : "5.038", "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : "0.004", "Dist::Zilla::Plugin::CheckIssues" : "0", - "Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0", + "Dist::Zilla::Plugin::CheckMetaResources" : "0", + "Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0.019", "Dist::Zilla::Plugin::CheckSelfDependency" : "0", "Dist::Zilla::Plugin::CheckStrictVersion" : "0", "Dist::Zilla::Plugin::ConfirmRelease" : "0", "Dist::Zilla::Plugin::CopyFilesFromRelease" : "0", + "Dist::Zilla::Plugin::EnsureLatestPerl" : "0", "Dist::Zilla::Plugin::FileFinder::ByName" : "0", - "Dist::Zilla::Plugin::GenerateFile::ShareDir" : "0", + "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : "0", "Dist::Zilla::Plugin::Git::Check" : "0", "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch" : "0.004", "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts" : "0", "Dist::Zilla::Plugin::Git::Commit" : "2.020", - "Dist::Zilla::Plugin::Git::Contributors" : "0.004", + "Dist::Zilla::Plugin::Git::Contributors" : "0.029", "Dist::Zilla::Plugin::Git::Describe" : "0.004", "Dist::Zilla::Plugin::Git::GatherDir" : "2.016", "Dist::Zilla::Plugin::Git::Push" : "0", @@ -63,9 +116,9 @@ "Dist::Zilla::Plugin::Git::Tag" : "0", "Dist::Zilla::Plugin::GitHub::Update" : "0.40", "Dist::Zilla::Plugin::GithubMeta" : "0.54", - "Dist::Zilla::Plugin::InstallGuide" : "0", + "Dist::Zilla::Plugin::InstallGuide" : "1.200005", "Dist::Zilla::Plugin::Keywords" : "0.004", - "Dist::Zilla::Plugin::License" : "0", + "Dist::Zilla::Plugin::License" : "5.038", "Dist::Zilla::Plugin::MakeMaker::Awesome" : "0.27", "Dist::Zilla::Plugin::Manifest" : "0", "Dist::Zilla::Plugin::MetaConfig" : "0", @@ -78,83 +131,44 @@ "Dist::Zilla::Plugin::MojibakeTests" : "0.8", "Dist::Zilla::Plugin::NextRelease" : "5.033", "Dist::Zilla::Plugin::PPPort" : "0", - "Dist::Zilla::Plugin::PodCoverageTests" : "0", - "Dist::Zilla::Plugin::PodSyntaxTests" : "0", + "Dist::Zilla::Plugin::PodCoverageTests" : "5.040", + "Dist::Zilla::Plugin::PodSyntaxTests" : "5.040", "Dist::Zilla::Plugin::PodWeaver" : "4.005", "Dist::Zilla::Plugin::Prereqs" : "0", - "Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0", + "Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0.006", "Dist::Zilla::Plugin::PromptIfStale" : "0", "Dist::Zilla::Plugin::Readme" : "0", "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.142180", "Dist::Zilla::Plugin::RewriteVersion::Transitional" : "0.004", - "Dist::Zilla::Plugin::Run::AfterBuild" : "0.038", + "Dist::Zilla::Plugin::Run::AfterBuild" : "0.041", "Dist::Zilla::Plugin::Run::AfterRelease" : "0.038", "Dist::Zilla::Plugin::RunExtraTests" : "0.024", "Dist::Zilla::Plugin::StaticInstall" : "0.005", - "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.008", + "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.012", "Dist::Zilla::Plugin::Test::ChangesHasContent" : "0", "Dist::Zilla::Plugin::Test::CleanNamespaces" : "0.006", "Dist::Zilla::Plugin::Test::Compile" : "2.039", "Dist::Zilla::Plugin::Test::EOL" : "0.17", - "Dist::Zilla::Plugin::Test::Kwalitee" : "2.06", - "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000003", + "Dist::Zilla::Plugin::Test::Kwalitee" : "2.10", + "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000008", "Dist::Zilla::Plugin::Test::NoTabs" : "0.08", - "Dist::Zilla::Plugin::Test::Pod::No404s" : "1.002", - "Dist::Zilla::Plugin::Test::PodSpelling" : "2.006001", - "Dist::Zilla::Plugin::Test::Portability" : "0", - "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0.019", + "Dist::Zilla::Plugin::Test::Pod::No404s" : "1.003", + "Dist::Zilla::Plugin::Test::PodSpelling" : "2.006003", + "Dist::Zilla::Plugin::Test::Portability" : "2.000007", + "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0.022", "Dist::Zilla::Plugin::TestRelease" : "0", "Dist::Zilla::Plugin::UploadToCPAN" : "0", - "Dist::Zilla::PluginBundle::Author::ETHER" : "0.095", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Pod::Coverage::TrustPod" : "0", - "Test::CPAN::Changes" : "0.19", - "Test::CPAN::Meta" : "0", - "Test::CleanNamespaces" : "0.15", - "Test::EOL" : "0", - "Test::Kwalitee" : "1.21", - "Test::Mojibake" : "0", - "Test::More" : "0.94", - "Test::NoTabs" : "0", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::No404s" : "0", - "Test::Spelling" : "0.12" - } - }, - "runtime" : { - "requires" : { - "B::Hooks::EndOfScope" : "0.08", - "B::Hooks::OP::Check" : "0.17", - "B::Hooks::OP::PPAddr" : "0.03", - "B::Hooks::Parser" : "0.12", - "XSLoader" : "0", - "perl" : "5.006", - "strict" : "0", - "warnings" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "B::Deparse" : "0", - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "Test::More" : "0", - "base" : "0", - "perl" : "5.006", - "vars" : "0" + "Dist::Zilla::Plugin::UseUnsafeInc" : "0", + "Dist::Zilla::PluginBundle::Author::ETHER" : "0.119", + "Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007", + "Software::License::Perl_5" : "0" } } }, "provides" : { "signatures" : { "file" : "lib/signatures.pm", - "version" : "0.13" + "version" : "0.14" } }, "release_status" : "stable", @@ -170,10 +184,10 @@ "web" : "https://github.com/karenetheridge/signatures" } }, - "version" : "0.13", + "version" : "0.14", "x_Dist_Zilla" : { "perl" : { - "version" : "5.023001" + "version" : "5.029010" }, "plugins" : [ { @@ -181,28 +195,11 @@ "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", - "type" : "requires" + "type" : "recommends" } }, - "name" : "@Author::ETHER/bundle_plugins", - "version" : "5.037" - }, - { - "class" : "Dist::Zilla::Plugin::RewriteVersion::Transitional", - "config" : { - "Dist::Zilla::Plugin::RewriteVersion" : { - "add_tarball_name" : 0, - "finders" : [ - ":ExecFiles", - ":InstallModules" - ], - "global" : 1, - "skip_version_provider" : 0 - }, - "Dist::Zilla::Plugin::RewriteVersion::Transitional" : {} - }, - "name" : "@Author::ETHER/RewriteVersion::Transitional", - "version" : "0.007" + "name" : "@Author::ETHER/pluginbundle version", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", @@ -214,51 +211,34 @@ "Dist::Zilla::PluginBundle::Author::ETHER" ], "phase" : "build", + "run_under_travis" : 0, "skip" : [] } }, "name" : "@Author::ETHER/stale modules, build", - "version" : "0.045" - }, - { - "class" : "Dist::Zilla::Plugin::PromptIfStale", - "config" : { - "Dist::Zilla::Plugin::PromptIfStale" : { - "check_all_plugins" : "1", - "check_all_prereqs" : "1", - "modules" : [], - "phase" : "release", - "skip" : [] - } - }, - "name" : "@Author::ETHER/stale modules, release", - "version" : "0.045" + "version" : "0.055" }, { "class" : "Dist::Zilla::Plugin::FileFinder::ByName", "name" : "@Author::ETHER/Examples", - "version" : "5.037" - }, - { - "class" : "Dist::Zilla::Plugin::FileFinder::ByName", - "name" : "@Author::ETHER/ExtraTestFiles", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::GatherDir", "config" : { "Dist::Zilla::Plugin::GatherDir" : { "exclude_filename" : [ - "Makefile.PL", - "ppport.h", - "README.pod", "CONTRIBUTING", + "INSTALL", "LICENSE", - "inc/ExtUtils/MakeMaker/Dist/Zilla/Develop.pm" + "Makefile.PL", + "README.pod", + "inc/ExtUtils/MakeMaker/Dist/Zilla/Develop.pm", + "ppport.h" ], "exclude_match" : [], - "follow_symlinks" : "0", - "include_dotfiles" : "0", + "follow_symlinks" : 0, + "include_dotfiles" : 0, "prefix" : "", "prune_directory" : [], "root" : "." @@ -268,75 +248,87 @@ } }, "name" : "@Author::ETHER/Git::GatherDir", - "version" : "2.036" + "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::MetaYAML", "name" : "@Author::ETHER/MetaYAML", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaJSON", "name" : "@Author::ETHER/MetaJSON", - "version" : "5.037" - }, - { - "class" : "Dist::Zilla::Plugin::License", - "name" : "@Author::ETHER/License", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Readme", "name" : "@Author::ETHER/Readme", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Manifest", "name" : "@Author::ETHER/Manifest", - "version" : "5.037" + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::License", + "name" : "@Author::ETHER/License", + "version" : "6.012" }, { - "class" : "Dist::Zilla::Plugin::GenerateFile::ShareDir", + "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir", "config" : { - "Dist::Zilla::Plugin::GenerateFile::ShareDir" : { + "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : { "destination_filename" : "CONTRIBUTING", "dist" : "Dist-Zilla-PluginBundle-Author-ETHER", "encoding" : "UTF-8", "has_xs" : 1, "location" : "build", "source_filename" : "CONTRIBUTING" + }, + "Dist::Zilla::Role::RepoFileInjector" : { + "allow_overwrite" : 1, + "repo_root" : ".", + "version" : "0.009" } }, "name" : "@Author::ETHER/generate CONTRIBUTING", - "version" : "0.006" + "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::InstallGuide", + "config" : { + "Dist::Zilla::Role::ModuleMetadata" : { + "Module::Metadata" : "1.000036", + "version" : "0.006" + } + }, "name" : "@Author::ETHER/InstallGuide", - "version" : "1.200006" + "version" : "1.200013" }, { "class" : "Dist::Zilla::Plugin::Test::Compile", "config" : { "Dist::Zilla::Plugin::Test::Compile" : { - "bail_out_on_fail" : "1", + "bail_out_on_fail" : 1, "fail_on_warning" : "author", - "fake_home" : "0", + "fake_home" : 0, "filename" : "xt/author/00-compile.t", "module_finder" : [ ":InstallModules" ], - "needs_display" : "0", + "needs_display" : 0, "phase" : "develop", "script_finder" : [ - ":ExecFiles", + ":PerlExecFiles", "@Author::ETHER/Examples" ], - "skips" : [] + "skips" : [], + "switch" : [] } }, "name" : "@Author::ETHER/Test::Compile", - "version" : "2.053" + "version" : "2.058" }, { "class" : "Dist::Zilla::Plugin::Test::NoTabs", @@ -348,7 +340,7 @@ ":ExecFiles", "@Author::ETHER/Examples", ":TestFiles", - "@Author::ETHER/ExtraTestFiles" + ":ExtraTestFiles" ] } }, @@ -361,57 +353,97 @@ "Dist::Zilla::Plugin::Test::EOL" : { "filename" : "xt/author/eol.t", "finder" : [ - ":InstallModules", ":ExecFiles", - "@Author::ETHER/Examples", + ":ExtraTestFiles", + ":InstallModules", ":TestFiles", - "@Author::ETHER/ExtraTestFiles" + "@Author::ETHER/Examples" ], - "trailing_whitespace" : "1" + "trailing_whitespace" : 1 } }, "name" : "@Author::ETHER/Test::EOL", - "version" : "0.18" + "version" : "0.19" }, { "class" : "Dist::Zilla::Plugin::MetaTests", "name" : "@Author::ETHER/MetaTests", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes", + "config" : { + "Dist::Zilla::Plugin::Test::CPAN::Changes" : { + "changelog" : "Changes" + } + }, "name" : "@Author::ETHER/Test::CPAN::Changes", - "version" : "0.009" + "version" : "0.012" + }, + { + "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir", + "config" : { + "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : { + "destination_filename" : "xt/author/changes_has_content.t", + "dist" : "Dist-Zilla-PluginBundle-Author-ETHER", + "encoding" : "UTF-8", + "location" : "build", + "source_filename" : "changes_has_content.t" + }, + "Dist::Zilla::Role::RepoFileInjector" : { + "allow_overwrite" : 1, + "repo_root" : ".", + "version" : "0.009" + } + }, + "name" : "@Author::ETHER/generate xt/author/changes_has_content.t", + "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Test::ChangesHasContent", "name" : "@Author::ETHER/Test::ChangesHasContent", - "version" : "0.008" + "version" : "0.011" }, { "class" : "Dist::Zilla::Plugin::Test::MinimumVersion", "name" : "@Author::ETHER/Test::MinimumVersion", - "version" : "2.000006" + "version" : "2.000008" }, { "class" : "Dist::Zilla::Plugin::PodSyntaxTests", "name" : "@Author::ETHER/PodSyntaxTests", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PodCoverageTests", "name" : "@Author::ETHER/PodCoverageTests", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Test::PodSpelling", + "config" : { + "Dist::Zilla::Plugin::Test::PodSpelling" : { + "directories" : [ + "examples", + "lib", + "script", + "t", + "xt" + ], + "spell_cmd" : "", + "stopwords" : [ + "irc" + ], + "wordlist" : "Pod::Wordlist" + } + }, "name" : "@Author::ETHER/Test::PodSpelling", - "version" : "2.006009" + "version" : "2.007005" }, { "class" : "Dist::Zilla::Plugin::Test::Pod::No404s", "name" : "@Author::ETHER/Test::Pod::No404s", - "version" : "1.002" + "version" : "1.004" }, { "class" : "Dist::Zilla::Plugin::Test::Kwalitee", @@ -422,7 +454,7 @@ } }, "name" : "@Author::ETHER/Test::Kwalitee", - "version" : "2.11" + "version" : "2.12" }, { "class" : "Dist::Zilla::Plugin::MojibakeTests", @@ -432,12 +464,17 @@ { "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", "name" : "@Author::ETHER/Test::ReportPrereqs", - "version" : "0.021" + "version" : "0.027" }, { "class" : "Dist::Zilla::Plugin::Test::Portability", + "config" : { + "Dist::Zilla::Plugin::Test::Portability" : { + "options" : "" + } + }, "name" : "@Author::ETHER/Test::Portability", - "version" : "2.000006" + "version" : "2.001000" }, { "class" : "Dist::Zilla::Plugin::Test::CleanNamespaces", @@ -453,7 +490,7 @@ { "class" : "Dist::Zilla::Plugin::Git::Describe", "name" : "@Author::ETHER/Git::Describe", - "version" : "0.005" + "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::PodWeaver", @@ -469,93 +506,113 @@ "plugins" : [ { "class" : "Pod::Weaver::Plugin::EnsurePod5", - "name" : "@CorePrep/EnsurePod5", - "version" : "4.012" + "name" : "@Author::ETHER/EnsurePod5", + "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::H1Nester", - "name" : "@CorePrep/H1Nester", - "version" : "4.012" + "name" : "@Author::ETHER/H1Nester", + "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::SingleEncoding", "name" : "@Author::ETHER/SingleEncoding", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::Transformer", "name" : "@Author::ETHER/List", - "version" : "4.012" + "version" : "4.015" + }, + { + "class" : "Pod::Weaver::Plugin::Transformer", + "name" : "@Author::ETHER/Verbatim", + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/header", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Name", "name" : "@Author::ETHER/Name", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Version", "name" : "@Author::ETHER/Version", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/prelude", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "SYNOPSIS", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "DESCRIPTION", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "OVERVIEW", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "ATTRIBUTES", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "METHODS", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "FUNCTIONS", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "TYPES", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Leftovers", "name" : "@Author::ETHER/Leftovers", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/postlude", - "version" : "4.012" + "version" : "4.015" + }, + { + "class" : "Pod::Weaver::Section::GenerateSection", + "name" : "@Author::ETHER/generate SUPPORT", + "version" : "1.06" + }, + { + "class" : "Pod::Weaver::Section::AllowOverride", + "name" : "@Author::ETHER/allow override SUPPORT", + "version" : "0.05" }, { "class" : "Pod::Weaver::Section::Authors", "name" : "@Author::ETHER/Authors", - "version" : "4.012" + "version" : "4.015" + }, + { + "class" : "Pod::Weaver::Section::AllowOverride", + "name" : "@Author::ETHER/allow override AUTHOR", + "version" : "0.05" }, { "class" : "Pod::Weaver::Section::Contributors", @@ -565,33 +622,23 @@ { "class" : "Pod::Weaver::Section::Legal", "name" : "@Author::ETHER/Legal", - "version" : "4.012" + "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/footer", - "version" : "4.012" + "version" : "4.015" } ] } }, "name" : "@Author::ETHER/PodWeaver", - "version" : "4.006" - }, - { - "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", - "config" : { - "Dist::Zilla::Role::FileWatcher" : { - "version" : "0.006" - } - }, - "name" : "@Author::ETHER/ReadmeAnyFromPod", - "version" : "0.150250" + "version" : "4.008" }, { "class" : "Dist::Zilla::Plugin::GithubMeta", "name" : "@Author::ETHER/GithubMeta", - "version" : "0.54" + "version" : "0.58" }, { "class" : "Dist::Zilla::Plugin::AutoMetaResources", @@ -599,20 +646,6 @@ "version" : "1.21" }, { - "class" : "Dist::Zilla::Plugin::AuthorityFromModule", - "config" : { - "Dist::Zilla::Plugin::AuthorityFromModule" : { - "module" : "signatures" - }, - "Dist::Zilla::Role::ModuleMetadata" : { - "Module::Metadata" : "1.000027", - "version" : "0.003" - } - }, - "name" : "@Author::ETHER/AuthorityFromModule", - "version" : "0.006" - }, - { "class" : "Dist::Zilla::Plugin::Authority", "name" : "@Author::ETHER/Authority", "version" : "1.009" @@ -620,7 +653,7 @@ { "class" : "Dist::Zilla::Plugin::MetaNoIndex", "name" : "@Author::ETHER/MetaNoIndex", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Package", @@ -633,23 +666,29 @@ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", - "version" : "5.037" + "version" : "6.012" } - ] + ], + "include_underscores" : 0 }, "Dist::Zilla::Role::MetaProvider::Provider" : { - "inherit_missing" : "0", - "inherit_version" : "0", - "meta_noindex" : "1" + "$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004", + "inherit_missing" : 0, + "inherit_version" : 0, + "meta_noindex" : 1 + }, + "Dist::Zilla::Role::ModuleMetadata" : { + "Module::Metadata" : "1.000036", + "version" : "0.006" } }, "name" : "@Author::ETHER/MetaProvides::Package", - "version" : "2.003001" + "version" : "2.004003" }, { "class" : "Dist::Zilla::Plugin::MetaConfig", "name" : "@Author::ETHER/MetaConfig", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Keywords", @@ -659,32 +698,27 @@ } }, "name" : "@Author::ETHER/Keywords", - "version" : "0.006" + "version" : "0.007" }, { - "class" : "Dist::Zilla::Plugin::Git::Contributors", + "class" : "Dist::Zilla::Plugin::UseUnsafeInc", "config" : { - "Dist::Zilla::Plugin::Git::Contributors" : { - "include_authors" : 0, - "include_releaser" : 1, - "order_by" : "commits", - "paths" : [ - "." - ] + "Dist::Zilla::Plugin::UseUnsafeInc" : { + "dot_in_INC" : 0 } }, - "name" : "@Author::ETHER/Git::Contributors", - "version" : "0.013" + "name" : "@Author::ETHER/UseUnsafeInc", + "version" : "0.001" }, { "class" : "Dist::Zilla::Plugin::AutoPrereqs", "name" : "@Author::ETHER/AutoPrereqs", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps", "name" : "@Author::ETHER/Prereqs::AuthorDeps", - "version" : "0.004" + "version" : "0.006" }, { "class" : "Dist::Zilla::Plugin::MinimumPerl", @@ -692,26 +726,29 @@ "version" : "1.006" }, { - "class" : "Dist::Zilla::Plugin::Prereqs", + "class" : "Dist::Zilla::Plugin::Git::Contributors", "config" : { - "Dist::Zilla::Plugin::Prereqs" : { - "phase" : "develop", - "type" : "recommends" + "Dist::Zilla::Plugin::Git::Contributors" : { + "git_version" : "2.19.1", + "include_authors" : 0, + "include_releaser" : 1, + "order_by" : "commits", + "paths" : [] } }, - "name" : "@Author::ETHER/pluginbundle_version", - "version" : "5.037" + "name" : "@Author::ETHER/Git::Contributors", + "version" : "0.035" }, { "class" : "Dist::Zilla::Plugin::StaticInstall", "config" : { "Dist::Zilla::Plugin::StaticInstall" : { - "dry_run" : 1, - "mode" : "auto" + "dry_run" : 0, + "mode" : "off" } }, "name" : "@Author::ETHER/StaticInstall", - "version" : "0.007" + "version" : "0.012" }, { "class" : "Dist::Zilla::Plugin::RunExtraTests", @@ -721,7 +758,7 @@ } }, "name" : "@Author::ETHER/RunExtraTests", - "version" : "0.027" + "version" : "0.029" }, { "class" : "Dist::Zilla::Plugin::CheckSelfDependency", @@ -732,8 +769,8 @@ ] }, "Dist::Zilla::Role::ModuleMetadata" : { - "Module::Metadata" : "1.000027", - "version" : "0.003" + "Module::Metadata" : "1.000036", + "version" : "0.006" } }, "name" : "@Author::ETHER/CheckSelfDependency", @@ -747,11 +784,12 @@ "quiet" : 1, "run" : [ "bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\"" - ] + ], + "version" : "0.048" } }, "name" : "@Author::ETHER/.ackrc", - "version" : "0.039" + "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::Run::AfterBuild", @@ -760,12 +798,13 @@ "eval" : [ "if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }" ], - "fatal_errors" : 1, - "quiet" : 1 + "fatal_errors" : 0, + "quiet" : 1, + "version" : "0.048" } }, "name" : "@Author::ETHER/.latest", - "version" : "0.039" + "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::CheckStrictVersion", @@ -773,6 +812,36 @@ "version" : "0.001" }, { + "class" : "Dist::Zilla::Plugin::CheckMetaResources", + "name" : "@Author::ETHER/CheckMetaResources", + "version" : "0.001" + }, + { + "class" : "Dist::Zilla::Plugin::EnsureLatestPerl", + "config" : { + "Dist::Zilla::Plugin::EnsureLatestPerl" : { + "Module::CoreList" : "5.20190420" + } + }, + "name" : "@Author::ETHER/EnsureLatestPerl", + "version" : "0.008" + }, + { + "class" : "Dist::Zilla::Plugin::PromptIfStale", + "config" : { + "Dist::Zilla::Plugin::PromptIfStale" : { + "check_all_plugins" : 1, + "check_all_prereqs" : 1, + "modules" : [], + "phase" : "release", + "run_under_travis" : 0, + "skip" : [] + } + }, + "name" : "@Author::ETHER/stale modules, release", + "version" : "0.055" + }, + { "class" : "Dist::Zilla::Plugin::Git::Check", "config" : { "Dist::Zilla::Plugin::Git::Check" : { @@ -784,46 +853,49 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/initial check", - "version" : "2.036" + "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts", "config" : { "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::CheckFor::MergeConflicts", - "version" : "0.013" + "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch", "config" : { "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::CheckFor::CorrectBranch", - "version" : "0.013" + "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Git::Remote::Check", "name" : "@Author::ETHER/Git::Remote::Check", - "version" : "0.2.0" + "version" : "0.1.2" }, { "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed", "name" : "@Author::ETHER/CheckPrereqsIndexed", - "version" : "0.016" + "version" : "0.020" }, { "class" : "Dist::Zilla::Plugin::TestRelease", "name" : "@Author::ETHER/TestRelease", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Check", @@ -837,21 +909,37 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/after tests", - "version" : "2.036" + "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::CheckIssues", "name" : "@Author::ETHER/CheckIssues", - "version" : "0.008" + "version" : "0.010" }, { "class" : "Dist::Zilla::Plugin::UploadToCPAN", "name" : "@Author::ETHER/UploadToCPAN", - "version" : "5.037" + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::Run::AfterRelease", + "config" : { + "Dist::Zilla::Plugin::Run::Role::Runner" : { + "eval" : [ + "unlink 'LICENSE'" + ], + "fatal_errors" : 1, + "quiet" : 1, + "version" : "0.048" + } + }, + "name" : "@Author::ETHER/remove old LICENSE", + "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease", @@ -859,16 +947,72 @@ "Dist::Zilla::Plugin::CopyFilesFromRelease" : { "filename" : [ "CONTRIBUTING", - "Changes", "INSTALL", + "LICENCE", "LICENSE", "ppport.h" ], "match" : [] } }, - "name" : "@Author::ETHER/CopyFilesFromRelease", - "version" : "0.006" + "name" : "@Author::ETHER/copy generated files", + "version" : "0.007" + }, + { + "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", + "config" : { + "Dist::Zilla::Role::FileWatcher" : { + "version" : "0.006" + } + }, + "name" : "@Author::ETHER/ReadmeAnyFromPod", + "version" : "0.163250" + }, + { + "class" : "Dist::Zilla::Plugin::Prereqs", + "config" : { + "Dist::Zilla::Plugin::Prereqs" : { + "phase" : "develop", + "type" : "recommends" + } + }, + "name" : "@Author::ETHER/@Git::VersionManager/pluginbundle version", + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::RewriteVersion::Transitional", + "config" : { + "Dist::Zilla::Plugin::RewriteVersion" : { + "add_tarball_name" : 0, + "finders" : [ + ":ExecFiles", + ":InstallModules" + ], + "global" : 1, + "skip_version_provider" : 0 + }, + "Dist::Zilla::Plugin::RewriteVersion::Transitional" : {} + }, + "name" : "@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional", + "version" : "0.009" + }, + { + "class" : "Dist::Zilla::Plugin::MetaProvides::Update", + "name" : "@Author::ETHER/@Git::VersionManager/MetaProvides::Update", + "version" : "0.007" + }, + { + "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease", + "config" : { + "Dist::Zilla::Plugin::CopyFilesFromRelease" : { + "filename" : [ + "Changes" + ], + "match" : [] + } + }, + "name" : "@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease", + "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", @@ -883,6 +1027,7 @@ "allow_dirty" : [ "CONTRIBUTING", "Changes", + "INSTALL", "LICENSE", "README.pod", "ppport.h" @@ -891,14 +1036,15 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, - "name" : "@Author::ETHER/release snapshot", - "version" : "2.036" + "name" : "@Author::ETHER/@Git::VersionManager/release snapshot", + "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::Git::Tag", @@ -907,24 +1053,20 @@ "branch" : null, "changelog" : "Changes", "signed" : 0, - "tag" : "v0.13", - "tag_format" : "v%v", + "tag" : "v0.14", + "tag_format" : "v%V", "tag_message" : "v%v%t" }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, - "name" : "@Author::ETHER/Git::Tag", - "version" : "2.036" - }, - { - "class" : "Dist::Zilla::Plugin::GitHub::Update", - "name" : "@Author::ETHER/GitHub::Update", - "version" : "0.40" + "name" : "@Author::ETHER/@Git::VersionManager/Git::Tag", + "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional", @@ -939,13 +1081,13 @@ }, "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : {} }, - "name" : "@Author::ETHER/BumpVersionAfterRelease::Transitional", - "version" : "0.007" + "name" : "@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional", + "version" : "0.009" }, { "class" : "Dist::Zilla::Plugin::NextRelease", - "name" : "@Author::ETHER/NextRelease", - "version" : "5.037" + "name" : "@Author::ETHER/@Git::VersionManager/NextRelease", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", @@ -956,7 +1098,9 @@ }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ - "Changes" + "Build.PL", + "Changes", + "Makefile.PL" ], "allow_dirty_match" : [ "(?^:^lib/.*\\.pm$)" @@ -964,14 +1108,26 @@ "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, - "name" : "@Author::ETHER/post-release commit", - "version" : "2.036" + "name" : "@Author::ETHER/@Git::VersionManager/post-release commit", + "version" : "2.046" + }, + { + "class" : "Dist::Zilla::Plugin::Prereqs", + "config" : { + "Dist::Zilla::Plugin::Prereqs" : { + "phase" : "x_Dist_Zilla", + "type" : "requires" + } + }, + "name" : "@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Push", @@ -983,11 +1139,22 @@ "remotes_must_exist" : 1 }, "Dist::Zilla::Role::Git::Repo" : { + "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::Push", - "version" : "2.036" + "version" : "2.046" + }, + { + "class" : "Dist::Zilla::Plugin::GitHub::Update", + "config" : { + "Dist::Zilla::Plugin::GitHub::Update" : { + "metacpan" : 1 + } + }, + "name" : "@Author::ETHER/GitHub::Update", + "version" : "0.47" }, { "class" : "Dist::Zilla::Plugin::Run::AfterRelease", @@ -997,11 +1164,12 @@ "quiet" : 0, "run" : [ "REDACTED" - ] + ], + "version" : "0.048" } }, "name" : "@Author::ETHER/install release", - "version" : "0.039" + "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::Run::AfterRelease", @@ -1011,26 +1179,43 @@ "print \"release complete!\\xa\"" ], "fatal_errors" : 1, - "quiet" : 1 + "quiet" : 1, + "version" : "0.048" } }, "name" : "@Author::ETHER/release complete", - "version" : "0.039" + "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::ConfirmRelease", "name" : "@Author::ETHER/ConfirmRelease", - "version" : "5.037" + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::Prereqs", + "config" : { + "Dist::Zilla::Plugin::Prereqs" : { + "phase" : "x_Dist_Zilla", + "type" : "requires" + } + }, + "name" : "@Author::ETHER/prereqs for @Author::ETHER", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MakeMaker::Awesome", "config" : { + "Dist::Zilla::Plugin::MakeMaker" : { + "make_path" : "make", + "version" : "6.012" + }, "Dist::Zilla::Role::TestRunner" : { - "default_jobs" : 1 + "default_jobs" : 1, + "version" : "6.012" } }, "name" : "MakeMaker::Awesome", - "version" : "0.34" + "version" : "0.48" }, { "class" : "Dist::Zilla::Plugin::Prereqs", @@ -1041,77 +1226,90 @@ } }, "name" : "ConfigureRequires", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PPPort", "name" : "PPPort", - "version" : "0.007" + "version" : "0.008" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":IncModules", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":TestFiles", - "version" : "5.037" + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::FinderCode", + "name" : ":ExtraTestFiles", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExecFiles", - "version" : "5.037" + "version" : "6.012" + }, + { + "class" : "Dist::Zilla::Plugin::FinderCode", + "name" : ":PerlExecFiles", + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ShareFiles", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":MainModule", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":AllFiles", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":NoFiles", - "version" : "5.037" + "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::VerifyPhases", "name" : "@Author::ETHER/PHASE VERIFICATION", - "version" : "0.011" + "version" : "0.016" } ], "zilla" : { "class" : "Dist::Zilla::Dist::Builder", "config" : { - "is_trial" : "0" + "is_trial" : 0 }, - "version" : "5.037" + "version" : "6.012" } }, "x_authority" : "cpan:FLORA", - "x_authority_from_module" : "signatures", "x_contributors" : [ "Karen Etheridge ", "Peter Martini ", - "Alexandr Ciornii ", "Father Chrysostomos ", "Alex Kapranoff ", - "Steffen Schwigon " + "Steffen Schwigon ", + "Alexandr Ciornii ", + "Dave Mitchell " ], - "x_permissions_from_module" : "signatures" + "x_generated_by_perl" : "v5.29.10", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.11", + "x_static_install" : 0, + "x_use_unsafe_inc" : 0 } diff -Nru libsignatures-perl-0.13/META.yml libsignatures-perl-0.14/META.yml --- libsignatures-perl-0.13/META.yml 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/META.yml 2019-05-03 05:39:46.000000000 +0000 @@ -6,7 +6,7 @@ B::Deparse: '0' ExtUtils::MakeMaker: '0' File::Spec: '0' - Test::More: '0' + Test::More: '0.88' base: '0' perl: '5.006' vars: '0' @@ -18,7 +18,7 @@ ExtUtils::MakeMaker: '0' perl: '5.006' dynamic_config: 0 -generated_by: 'Dist::Zilla version 5.037, CPAN::Meta::Converter version 2.150005' +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -26,13 +26,13 @@ name: signatures no_index: directory: + - inc - t - xt - - inc provides: signatures: file: lib/signatures.pm - version: '0.13' + version: '0.14' requires: B::Hooks::EndOfScope: '0.08' B::Hooks::OP::Check: '0.17' @@ -46,32 +46,19 @@ bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=signatures homepage: https://github.com/karenetheridge/signatures repository: https://github.com/karenetheridge/signatures.git -version: '0.13' +version: '0.14' x_Dist_Zilla: perl: - version: '5.023001' + version: '5.029010' plugins: - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop - type: requires - name: '@Author::ETHER/bundle_plugins' - version: '5.037' - - - class: Dist::Zilla::Plugin::RewriteVersion::Transitional - config: - Dist::Zilla::Plugin::RewriteVersion: - add_tarball_name: 0 - finders: - - ':ExecFiles' - - ':InstallModules' - global: 1 - skip_version_provider: 0 - Dist::Zilla::Plugin::RewriteVersion::Transitional: {} - name: '@Author::ETHER/RewriteVersion::Transitional' - version: '0.007' + type: recommends + name: '@Author::ETHER/pluginbundle version' + version: '6.012' - class: Dist::Zilla::Plugin::PromptIfStale config: @@ -81,103 +68,99 @@ modules: - Dist::Zilla::PluginBundle::Author::ETHER phase: build + run_under_travis: 0 skip: [] name: '@Author::ETHER/stale modules, build' - version: '0.045' - - - class: Dist::Zilla::Plugin::PromptIfStale - config: - Dist::Zilla::Plugin::PromptIfStale: - check_all_plugins: '1' - check_all_prereqs: '1' - modules: [] - phase: release - skip: [] - name: '@Author::ETHER/stale modules, release' - version: '0.045' + version: '0.055' - class: Dist::Zilla::Plugin::FileFinder::ByName name: '@Author::ETHER/Examples' - version: '5.037' - - - class: Dist::Zilla::Plugin::FileFinder::ByName - name: '@Author::ETHER/ExtraTestFiles' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Git::GatherDir config: Dist::Zilla::Plugin::GatherDir: exclude_filename: - - Makefile.PL - - ppport.h - - README.pod - CONTRIBUTING + - INSTALL - LICENSE + - Makefile.PL + - README.pod - inc/ExtUtils/MakeMaker/Dist/Zilla/Develop.pm + - ppport.h exclude_match: [] - follow_symlinks: '0' - include_dotfiles: '0' + follow_symlinks: 0 + include_dotfiles: 0 prefix: '' prune_directory: [] root: . Dist::Zilla::Plugin::Git::GatherDir: include_untracked: 0 name: '@Author::ETHER/Git::GatherDir' - version: '2.036' + version: '2.046' - class: Dist::Zilla::Plugin::MetaYAML name: '@Author::ETHER/MetaYAML' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::MetaJSON name: '@Author::ETHER/MetaJSON' - version: '5.037' - - - class: Dist::Zilla::Plugin::License - name: '@Author::ETHER/License' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Readme name: '@Author::ETHER/Readme' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Manifest name: '@Author::ETHER/Manifest' - version: '5.037' + version: '6.012' + - + class: Dist::Zilla::Plugin::License + name: '@Author::ETHER/License' + version: '6.012' - - class: Dist::Zilla::Plugin::GenerateFile::ShareDir + class: Dist::Zilla::Plugin::GenerateFile::FromShareDir config: - Dist::Zilla::Plugin::GenerateFile::ShareDir: + Dist::Zilla::Plugin::GenerateFile::FromShareDir: destination_filename: CONTRIBUTING dist: Dist-Zilla-PluginBundle-Author-ETHER encoding: UTF-8 has_xs: 1 location: build source_filename: CONTRIBUTING + Dist::Zilla::Role::RepoFileInjector: + allow_overwrite: 1 + repo_root: . + version: '0.009' name: '@Author::ETHER/generate CONTRIBUTING' - version: '0.006' + version: '0.014' - class: Dist::Zilla::Plugin::InstallGuide + config: + Dist::Zilla::Role::ModuleMetadata: + Module::Metadata: '1.000036' + version: '0.006' name: '@Author::ETHER/InstallGuide' - version: '1.200006' + version: '1.200013' - class: Dist::Zilla::Plugin::Test::Compile config: Dist::Zilla::Plugin::Test::Compile: bail_out_on_fail: '1' fail_on_warning: author - fake_home: '0' + fake_home: 0 filename: xt/author/00-compile.t module_finder: - ':InstallModules' - needs_display: '0' + needs_display: 0 phase: develop script_finder: - - ':ExecFiles' + - ':PerlExecFiles' - '@Author::ETHER/Examples' skips: [] + switch: [] name: '@Author::ETHER/Test::Compile' - version: '2.053' + version: '2.058' - class: Dist::Zilla::Plugin::Test::NoTabs config: @@ -188,7 +171,7 @@ - ':ExecFiles' - '@Author::ETHER/Examples' - ':TestFiles' - - '@Author::ETHER/ExtraTestFiles' + - ':ExtraTestFiles' name: '@Author::ETHER/Test::NoTabs' version: '0.15' - @@ -197,46 +180,76 @@ Dist::Zilla::Plugin::Test::EOL: filename: xt/author/eol.t finder: - - ':InstallModules' - ':ExecFiles' - - '@Author::ETHER/Examples' + - ':ExtraTestFiles' + - ':InstallModules' - ':TestFiles' - - '@Author::ETHER/ExtraTestFiles' - trailing_whitespace: '1' + - '@Author::ETHER/Examples' + trailing_whitespace: 1 name: '@Author::ETHER/Test::EOL' - version: '0.18' + version: '0.19' - class: Dist::Zilla::Plugin::MetaTests name: '@Author::ETHER/MetaTests' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Test::CPAN::Changes + config: + Dist::Zilla::Plugin::Test::CPAN::Changes: + changelog: Changes name: '@Author::ETHER/Test::CPAN::Changes' - version: '0.009' + version: '0.012' + - + class: Dist::Zilla::Plugin::GenerateFile::FromShareDir + config: + Dist::Zilla::Plugin::GenerateFile::FromShareDir: + destination_filename: xt/author/changes_has_content.t + dist: Dist-Zilla-PluginBundle-Author-ETHER + encoding: UTF-8 + location: build + source_filename: changes_has_content.t + Dist::Zilla::Role::RepoFileInjector: + allow_overwrite: 1 + repo_root: . + version: '0.009' + name: '@Author::ETHER/generate xt/author/changes_has_content.t' + version: '0.014' - class: Dist::Zilla::Plugin::Test::ChangesHasContent name: '@Author::ETHER/Test::ChangesHasContent' - version: '0.008' + version: '0.011' - class: Dist::Zilla::Plugin::Test::MinimumVersion name: '@Author::ETHER/Test::MinimumVersion' - version: '2.000006' + version: '2.000008' - class: Dist::Zilla::Plugin::PodSyntaxTests name: '@Author::ETHER/PodSyntaxTests' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::PodCoverageTests name: '@Author::ETHER/PodCoverageTests' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Test::PodSpelling + config: + Dist::Zilla::Plugin::Test::PodSpelling: + directories: + - examples + - lib + - script + - t + - xt + spell_cmd: '' + stopwords: + - irc + wordlist: Pod::Wordlist name: '@Author::ETHER/Test::PodSpelling' - version: '2.006009' + version: '2.007005' - class: Dist::Zilla::Plugin::Test::Pod::No404s name: '@Author::ETHER/Test::Pod::No404s' - version: '1.002' + version: '1.004' - class: Dist::Zilla::Plugin::Test::Kwalitee config: @@ -244,7 +257,7 @@ filename: xt/author/kwalitee.t skiptest: [] name: '@Author::ETHER/Test::Kwalitee' - version: '2.11' + version: '2.12' - class: Dist::Zilla::Plugin::MojibakeTests name: '@Author::ETHER/MojibakeTests' @@ -252,11 +265,14 @@ - class: Dist::Zilla::Plugin::Test::ReportPrereqs name: '@Author::ETHER/Test::ReportPrereqs' - version: '0.021' + version: '0.027' - class: Dist::Zilla::Plugin::Test::Portability + config: + Dist::Zilla::Plugin::Test::Portability: + options: '' name: '@Author::ETHER/Test::Portability' - version: '2.000006' + version: '2.001000' - class: Dist::Zilla::Plugin::Test::CleanNamespaces config: @@ -268,7 +284,7 @@ - class: Dist::Zilla::Plugin::Git::Describe name: '@Author::ETHER/Git::Describe' - version: '0.005' + version: '0.007' - class: Dist::Zilla::Plugin::PodWeaver config: @@ -281,76 +297,92 @@ plugins: - class: Pod::Weaver::Plugin::EnsurePod5 - name: '@CorePrep/EnsurePod5' - version: '4.012' + name: '@Author::ETHER/EnsurePod5' + version: '4.015' - class: Pod::Weaver::Plugin::H1Nester - name: '@CorePrep/H1Nester' - version: '4.012' + name: '@Author::ETHER/H1Nester' + version: '4.015' - class: Pod::Weaver::Plugin::SingleEncoding name: '@Author::ETHER/SingleEncoding' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Plugin::Transformer name: '@Author::ETHER/List' - version: '4.012' + version: '4.015' + - + class: Pod::Weaver::Plugin::Transformer + name: '@Author::ETHER/Verbatim' + version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/header' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Name name: '@Author::ETHER/Name' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Version name: '@Author::ETHER/Version' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/prelude' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Generic name: SYNOPSIS - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Generic name: DESCRIPTION - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Generic name: OVERVIEW - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Collect name: ATTRIBUTES - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Collect name: METHODS - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Collect name: FUNCTIONS - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Collect name: TYPES - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Leftovers name: '@Author::ETHER/Leftovers' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/postlude' - version: '4.012' + version: '4.015' + - + class: Pod::Weaver::Section::GenerateSection + name: '@Author::ETHER/generate SUPPORT' + version: '1.06' + - + class: Pod::Weaver::Section::AllowOverride + name: '@Author::ETHER/allow override SUPPORT' + version: '0.05' - class: Pod::Weaver::Section::Authors name: '@Author::ETHER/Authors' - version: '4.012' + version: '4.015' + - + class: Pod::Weaver::Section::AllowOverride + name: '@Author::ETHER/allow override AUTHOR' + version: '0.05' - class: Pod::Weaver::Section::Contributors name: '@Author::ETHER/Contributors' @@ -358,46 +390,29 @@ - class: Pod::Weaver::Section::Legal name: '@Author::ETHER/Legal' - version: '4.012' + version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/footer' - version: '4.012' + version: '4.015' name: '@Author::ETHER/PodWeaver' - version: '4.006' - - - class: Dist::Zilla::Plugin::ReadmeAnyFromPod - config: - Dist::Zilla::Role::FileWatcher: - version: '0.006' - name: '@Author::ETHER/ReadmeAnyFromPod' - version: '0.150250' + version: '4.008' - class: Dist::Zilla::Plugin::GithubMeta name: '@Author::ETHER/GithubMeta' - version: '0.54' + version: '0.58' - class: Dist::Zilla::Plugin::AutoMetaResources name: '@Author::ETHER/AutoMetaResources' version: '1.21' - - class: Dist::Zilla::Plugin::AuthorityFromModule - config: - Dist::Zilla::Plugin::AuthorityFromModule: - module: signatures - Dist::Zilla::Role::ModuleMetadata: - Module::Metadata: '1.000027' - version: '0.003' - name: '@Author::ETHER/AuthorityFromModule' - version: '0.006' - - class: Dist::Zilla::Plugin::Authority name: '@Author::ETHER/Authority' version: '1.009' - class: Dist::Zilla::Plugin::MetaNoIndex name: '@Author::ETHER/MetaNoIndex' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::MetaProvides::Package config: @@ -408,70 +423,74 @@ - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' - version: '5.037' + version: '6.012' + include_underscores: 0 Dist::Zilla::Role::MetaProvider::Provider: + $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004' inherit_missing: '0' inherit_version: '0' meta_noindex: '1' + Dist::Zilla::Role::ModuleMetadata: + Module::Metadata: '1.000036' + version: '0.006' name: '@Author::ETHER/MetaProvides::Package' - version: '2.003001' + version: '2.004003' - class: Dist::Zilla::Plugin::MetaConfig name: '@Author::ETHER/MetaConfig' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Keywords config: Dist::Zilla::Plugin::Keywords: keywords: [] name: '@Author::ETHER/Keywords' - version: '0.006' + version: '0.007' - - class: Dist::Zilla::Plugin::Git::Contributors + class: Dist::Zilla::Plugin::UseUnsafeInc config: - Dist::Zilla::Plugin::Git::Contributors: - include_authors: 0 - include_releaser: 1 - order_by: commits - paths: - - . - name: '@Author::ETHER/Git::Contributors' - version: '0.013' + Dist::Zilla::Plugin::UseUnsafeInc: + dot_in_INC: 0 + name: '@Author::ETHER/UseUnsafeInc' + version: '0.001' - class: Dist::Zilla::Plugin::AutoPrereqs name: '@Author::ETHER/AutoPrereqs' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Prereqs::AuthorDeps name: '@Author::ETHER/Prereqs::AuthorDeps' - version: '0.004' + version: '0.006' - class: Dist::Zilla::Plugin::MinimumPerl name: '@Author::ETHER/MinimumPerl' version: '1.006' - - class: Dist::Zilla::Plugin::Prereqs + class: Dist::Zilla::Plugin::Git::Contributors config: - Dist::Zilla::Plugin::Prereqs: - phase: develop - type: recommends - name: '@Author::ETHER/pluginbundle_version' - version: '5.037' + Dist::Zilla::Plugin::Git::Contributors: + git_version: 2.19.1 + include_authors: 0 + include_releaser: 1 + order_by: commits + paths: [] + name: '@Author::ETHER/Git::Contributors' + version: '0.035' - class: Dist::Zilla::Plugin::StaticInstall config: Dist::Zilla::Plugin::StaticInstall: - dry_run: 1 - mode: auto + dry_run: 0 + mode: off name: '@Author::ETHER/StaticInstall' - version: '0.007' + version: '0.012' - class: Dist::Zilla::Plugin::RunExtraTests config: Dist::Zilla::Role::TestRunner: default_jobs: 9 name: '@Author::ETHER/RunExtraTests' - version: '0.027' + version: '0.029' - class: Dist::Zilla::Plugin::CheckSelfDependency config: @@ -479,8 +498,8 @@ finder: - ':InstallModules' Dist::Zilla::Role::ModuleMetadata: - Module::Metadata: '1.000027' - version: '0.003' + Module::Metadata: '1.000036' + version: '0.006' name: '@Author::ETHER/CheckSelfDependency' version: '0.011' - @@ -491,23 +510,48 @@ quiet: 1 run: - "bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\"" + version: '0.048' name: '@Author::ETHER/.ackrc' - version: '0.039' + version: '0.048' - class: Dist::Zilla::Plugin::Run::AfterBuild config: Dist::Zilla::Plugin::Run::Role::Runner: eval: - "if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }" - fatal_errors: 1 + fatal_errors: 0 quiet: 1 + version: '0.048' name: '@Author::ETHER/.latest' - version: '0.039' + version: '0.048' - class: Dist::Zilla::Plugin::CheckStrictVersion name: '@Author::ETHER/CheckStrictVersion' version: '0.001' - + class: Dist::Zilla::Plugin::CheckMetaResources + name: '@Author::ETHER/CheckMetaResources' + version: '0.001' + - + class: Dist::Zilla::Plugin::EnsureLatestPerl + config: + Dist::Zilla::Plugin::EnsureLatestPerl: + Module::CoreList: '5.20190420' + name: '@Author::ETHER/EnsureLatestPerl' + version: '0.008' + - + class: Dist::Zilla::Plugin::PromptIfStale + config: + Dist::Zilla::Plugin::PromptIfStale: + check_all_plugins: 1 + check_all_prereqs: 1 + modules: [] + phase: release + run_under_travis: 0 + skip: [] + name: '@Author::ETHER/stale modules, release' + version: '0.055' + - class: Dist::Zilla::Plugin::Git::Check config: Dist::Zilla::Plugin::Git::Check: @@ -517,35 +561,38 @@ allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . name: '@Author::ETHER/initial check' - version: '2.036' + version: '2.046' - class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts config: Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::CheckFor::MergeConflicts' - version: '0.013' + version: '0.014' - class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch config: Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::CheckFor::CorrectBranch' - version: '0.013' + version: '0.014' - class: Dist::Zilla::Plugin::Git::Remote::Check name: '@Author::ETHER/Git::Remote::Check' - version: 0.2.0 + version: 0.1.2 - class: Dist::Zilla::Plugin::CheckPrereqsIndexed name: '@Author::ETHER/CheckPrereqsIndexed' - version: '0.016' + version: '0.020' - class: Dist::Zilla::Plugin::TestRelease name: '@Author::ETHER/TestRelease' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::Git::Check config: @@ -556,30 +603,83 @@ allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . name: '@Author::ETHER/after tests' - version: '2.036' + version: '2.046' - class: Dist::Zilla::Plugin::CheckIssues name: '@Author::ETHER/CheckIssues' - version: '0.008' + version: '0.010' - class: Dist::Zilla::Plugin::UploadToCPAN name: '@Author::ETHER/UploadToCPAN' - version: '5.037' + version: '6.012' + - + class: Dist::Zilla::Plugin::Run::AfterRelease + config: + Dist::Zilla::Plugin::Run::Role::Runner: + eval: + - "unlink 'LICENSE'" + fatal_errors: 1 + quiet: 1 + version: '0.048' + name: '@Author::ETHER/remove old LICENSE' + version: '0.048' - class: Dist::Zilla::Plugin::CopyFilesFromRelease config: Dist::Zilla::Plugin::CopyFilesFromRelease: filename: - CONTRIBUTING - - Changes - INSTALL + - LICENCE - LICENSE - ppport.h match: [] - name: '@Author::ETHER/CopyFilesFromRelease' - version: '0.006' + name: '@Author::ETHER/copy generated files' + version: '0.007' + - + class: Dist::Zilla::Plugin::ReadmeAnyFromPod + config: + Dist::Zilla::Role::FileWatcher: + version: '0.006' + name: '@Author::ETHER/ReadmeAnyFromPod' + version: '0.163250' + - + class: Dist::Zilla::Plugin::Prereqs + config: + Dist::Zilla::Plugin::Prereqs: + phase: develop + type: recommends + name: '@Author::ETHER/@Git::VersionManager/pluginbundle version' + version: '6.012' + - + class: Dist::Zilla::Plugin::RewriteVersion::Transitional + config: + Dist::Zilla::Plugin::RewriteVersion: + add_tarball_name: 0 + finders: + - ':ExecFiles' + - ':InstallModules' + global: 1 + skip_version_provider: 0 + Dist::Zilla::Plugin::RewriteVersion::Transitional: {} + name: '@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional' + version: '0.009' + - + class: Dist::Zilla::Plugin::MetaProvides::Update + name: '@Author::ETHER/@Git::VersionManager/MetaProvides::Update' + version: '0.007' + - + class: Dist::Zilla::Plugin::CopyFilesFromRelease + config: + Dist::Zilla::Plugin::CopyFilesFromRelease: + filename: + - Changes + match: [] + name: '@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease' + version: '0.007' - class: Dist::Zilla::Plugin::Git::Commit config: @@ -591,17 +691,19 @@ allow_dirty: - CONTRIBUTING - Changes + - INSTALL - LICENSE - README.pod - ppport.h allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local - name: '@Author::ETHER/release snapshot' - version: '2.036' + name: '@Author::ETHER/@Git::VersionManager/release snapshot' + version: '2.046' - class: Dist::Zilla::Plugin::Git::Tag config: @@ -609,19 +711,16 @@ branch: ~ changelog: Changes signed: 0 - tag: v0.13 - tag_format: v%v + tag: v0.14 + tag_format: v%V tag_message: v%v%t Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local - name: '@Author::ETHER/Git::Tag' - version: '2.036' - - - class: Dist::Zilla::Plugin::GitHub::Update - name: '@Author::ETHER/GitHub::Update' - version: '0.40' + name: '@Author::ETHER/@Git::VersionManager/Git::Tag' + version: '2.046' - class: Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional config: @@ -632,12 +731,12 @@ global: 1 munge_makefile_pl: 1 Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional: {} - name: '@Author::ETHER/BumpVersionAfterRelease::Transitional' - version: '0.007' + name: '@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional' + version: '0.009' - class: Dist::Zilla::Plugin::NextRelease - name: '@Author::ETHER/NextRelease' - version: '5.037' + name: '@Author::ETHER/@Git::VersionManager/NextRelease' + version: '6.012' - class: Dist::Zilla::Plugin::Git::Commit config: @@ -646,16 +745,27 @@ commit_msg: 'increment $VERSION after %v release' Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: + - Build.PL - Changes + - Makefile.PL allow_dirty_match: - (?^:^lib/.*\.pm$) changelog: Changes Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local - name: '@Author::ETHER/post-release commit' - version: '2.036' + name: '@Author::ETHER/@Git::VersionManager/post-release commit' + version: '2.046' + - + class: Dist::Zilla::Plugin::Prereqs + config: + Dist::Zilla::Plugin::Prereqs: + phase: x_Dist_Zilla + type: requires + name: '@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager' + version: '6.012' - class: Dist::Zilla::Plugin::Git::Push config: @@ -664,9 +774,17 @@ - origin remotes_must_exist: 1 Dist::Zilla::Role::Git::Repo: + git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::Push' - version: '2.036' + version: '2.046' + - + class: Dist::Zilla::Plugin::GitHub::Update + config: + Dist::Zilla::Plugin::GitHub::Update: + metacpan: 1 + name: '@Author::ETHER/GitHub::Update' + version: '0.47' - class: Dist::Zilla::Plugin::Run::AfterRelease config: @@ -675,8 +793,9 @@ quiet: 0 run: - REDACTED + version: '0.048' name: '@Author::ETHER/install release' - version: '0.039' + version: '0.048' - class: Dist::Zilla::Plugin::Run::AfterRelease config: @@ -685,19 +804,32 @@ - 'print "release complete!\xa"' fatal_errors: 1 quiet: 1 + version: '0.048' name: '@Author::ETHER/release complete' - version: '0.039' + version: '0.048' - class: Dist::Zilla::Plugin::ConfirmRelease name: '@Author::ETHER/ConfirmRelease' - version: '5.037' + version: '6.012' + - + class: Dist::Zilla::Plugin::Prereqs + config: + Dist::Zilla::Plugin::Prereqs: + phase: x_Dist_Zilla + type: requires + name: '@Author::ETHER/prereqs for @Author::ETHER' + version: '6.012' - class: Dist::Zilla::Plugin::MakeMaker::Awesome config: + Dist::Zilla::Plugin::MakeMaker: + make_path: make + version: '6.012' Dist::Zilla::Role::TestRunner: default_jobs: 1 + version: '6.012' name: MakeMaker::Awesome - version: '0.34' + version: '0.48' - class: Dist::Zilla::Plugin::Prereqs config: @@ -705,59 +837,70 @@ phase: configure type: requires name: ConfigureRequires - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::PPPort name: PPPort - version: '0.007' + version: '0.008' - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':IncModules' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':TestFiles' - version: '5.037' + version: '6.012' + - + class: Dist::Zilla::Plugin::FinderCode + name: ':ExtraTestFiles' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ExecFiles' - version: '5.037' + version: '6.012' + - + class: Dist::Zilla::Plugin::FinderCode + name: ':PerlExecFiles' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ShareFiles' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':MainModule' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':AllFiles' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':NoFiles' - version: '5.037' + version: '6.012' - class: Dist::Zilla::Plugin::VerifyPhases name: '@Author::ETHER/PHASE VERIFICATION' - version: '0.011' + version: '0.016' zilla: class: Dist::Zilla::Dist::Builder config: is_trial: '0' - version: '5.037' + version: '6.012' x_authority: cpan:FLORA -x_authority_from_module: signatures x_contributors: - 'Karen Etheridge ' - 'Peter Martini ' - - 'Alexandr Ciornii ' - 'Father Chrysostomos ' - 'Alex Kapranoff ' - 'Steffen Schwigon ' -x_permissions_from_module: signatures + - 'Alexandr Ciornii ' + - 'Dave Mitchell ' +x_generated_by_perl: v5.29.10 +x_serialization_backend: 'YAML::Tiny version 1.73' +x_static_install: 0 +x_use_unsafe_inc: 0 diff -Nru libsignatures-perl-0.13/ppport.h libsignatures-perl-0.14/ppport.h --- libsignatures-perl-0.13/ppport.h 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/ppport.h 2019-05-03 05:39:46.000000000 +0000 @@ -4,9 +4,9 @@ /* ---------------------------------------------------------------------- - ppport.h -- Perl/Pollution/Portability Version 3.31 + ppport.h -- Perl/Pollution/Portability Version 3.51 - Automatically created by Devel::PPPort running under perl 5.023001. + Automatically created by Devel::PPPort running under perl 5.029010. Do NOT edit this file directly! -- Edit PPPort_pm.PL and the includes in parts/inc/ instead. @@ -21,7 +21,7 @@ =head1 NAME -ppport.h - Perl/Pollution/Portability version 3.31 +ppport.h - Perl/Pollution/Portability version 3.51 =head1 SYNOPSIS @@ -46,8 +46,8 @@ --nochanges don't suggest changes --nofilter don't filter input files - --strip strip all script and doc functionality from - ppport.h + --strip strip all script and doc functionality + from ppport.h --list-provided list provided API --list-unsupported list unsupported API @@ -56,7 +56,7 @@ =head1 COMPATIBILITY This version of F is designed to support operation with Perl -installations back to 5.003, and has been tested up to 5.20. +installations back to 5.003, and has been tested up to 5.30. =head1 OPTIONS @@ -219,19 +219,27 @@ ----------------------------------------------------------------------------------------- PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL + SvRX() NEED_SvRX NEED_SvRX_GLOBAL caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL + croak_xs_usage() NEED_croak_xs_usage NEED_croak_xs_usage_GLOBAL + die_sv() NEED_die_sv NEED_die_sv_GLOBAL eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL grok_number() NEED_grok_number NEED_grok_number_GLOBAL grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL + gv_fetchpvn_flags() NEED_gv_fetchpvn_flags NEED_gv_fetchpvn_flags_GLOBAL load_module() NEED_load_module NEED_load_module_GLOBAL + mess() NEED_mess NEED_mess_GLOBAL + mess_nocontext() NEED_mess_nocontext NEED_mess_nocontext_GLOBAL + mess_sv() NEED_mess_sv NEED_mess_sv_GLOBAL mg_findext() NEED_mg_findext NEED_mg_findext_GLOBAL my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL + my_strnlen() NEED_my_strnlen NEED_my_strnlen_GLOBAL newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL @@ -248,7 +256,9 @@ sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL sv_unmagicext() NEED_sv_unmagicext NEED_sv_unmagicext_GLOBAL + utf8_to_uvchr_buf() NEED_utf8_to_uvchr_buf NEED_utf8_to_uvchr_buf_GLOBAL vload_module() NEED_vload_module NEED_vload_module_GLOBAL + vmess() NEED_vmess NEED_vmess_GLOBAL vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL warner() NEED_warner NEED_warner_GLOBAL @@ -328,7 +338,7 @@ If F was generated using the latest version of C and is causing failure of this module, please -file a bug report here: L +send a bug report to L. Please include the following information: @@ -379,9 +389,9 @@ use strict; # Disable broken TRIE-optimization -BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 } +BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if "$]" >= 5.009004 && "$]" <= 5.009005 } -my $VERSION = 3.31; +my $VERSION = 3.51; my %opt = ( quiet => 0, @@ -448,12 +458,12 @@ (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()), } ) : die "invalid spec: $_" } qw( -ASCII_TO_NEED||5.007001|n AvFILLp|5.004050||p AvFILL||| -BhkDISABLE||5.021008| -BhkENABLE||5.021008| -BhkENTRY_set||5.021008| +BOM_UTF8||| +BhkDISABLE||5.024000| +BhkENABLE||5.024000| +BhkENTRY_set||5.024000| BhkENTRY||| BhkFLAGS||| CALL_BLOCK_HOOKS||| @@ -461,6 +471,8 @@ CPERLscope|5.005000||p CX_CURPAD_SAVE||| CX_CURPAD_SV||| +C_ARRAY_END|5.013002||p +C_ARRAY_LENGTH|5.008001||p CopFILEAV|5.006000||p CopFILEGV_set|5.006000||p CopFILEGV|5.006000||p @@ -477,8 +489,10 @@ CvPADLIST||5.008001| CvSTASH||| CvWEAKOUTSIDE||| +DECLARATION_FOR_LC_NUMERIC_MANIPULATION||5.021010|n DEFSV_set|5.010001||p DEFSV|5.004050||p +DO_UTF8||5.006000| END_EXTERN_C|5.005000||p ENTER||| ERRSV|5.004050||p @@ -500,7 +514,6 @@ GvAV||| GvCV||| GvHV||| -GvSVn|5.009003||p GvSV||| Gv_AMupdate||5.011000| HEf_SVKEY|5.003070||p @@ -536,10 +549,11 @@ IVTYPE|5.006000||p IVdf|5.006000||p LEAVE||| +LIKELY|||p LINKLIST||5.013006| LVRET||| MARK||| -MULTICALL||5.021008| +MULTICALL||5.024000| MUTABLE_PTR|5.010001||p MUTABLE_SV|5.010001||p MY_CXT_CLONE|5.009002||p @@ -547,7 +561,6 @@ MY_CXT|5.007003||p MoveD|5.009002|5.004050|p Move||| -NATIVE_TO_NEED||5.007001|n NOOP|5.005000||p NUM2PTR|5.006000||p NVTYPE|5.006000||p @@ -568,9 +581,11 @@ OP_TYPE_IS_OR_WAS||5.019010| OP_TYPE_IS||5.019007| ORIGMARK||| -OpHAS_SIBLING||5.021007| -OpSIBLING_set||5.021007| -OpSIBLING||5.021007| +OpHAS_SIBLING|5.021007||p +OpLASTSIB_set|5.021011||p +OpMAYBESIB_set|5.021011||p +OpMORESIB_set|5.021011||p +OpSIBLING|5.021007||p PAD_BASE_SV||| PAD_CLONE_VARS||| PAD_COMPNAME_FLAGS||| @@ -590,7 +605,8 @@ PERLIO_FUNCS_CAST|5.009003||p PERLIO_FUNCS_DECL|5.009003||p PERL_ABS|5.008001||p -PERL_BCDVERSION|5.021008||p +PERL_ARGS_ASSERT_CROAK_XS_USAGE|||p +PERL_BCDVERSION|5.024000||p PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p PERL_HASH|5.003070||p PERL_INT_MAX|5.003070||p @@ -608,14 +624,14 @@ PERL_MAGIC_env|5.007002||p PERL_MAGIC_ext|5.007002||p PERL_MAGIC_fm|5.007002||p -PERL_MAGIC_glob|5.021008||p +PERL_MAGIC_glob|5.024000||p PERL_MAGIC_isaelem|5.007002||p PERL_MAGIC_isa|5.007002||p -PERL_MAGIC_mutex|5.021008||p +PERL_MAGIC_mutex|5.024000||p PERL_MAGIC_nkeys|5.007002||p -PERL_MAGIC_overload_elem|5.021008||p +PERL_MAGIC_overload_elem|5.024000||p PERL_MAGIC_overload_table|5.007002||p -PERL_MAGIC_overload|5.021008||p +PERL_MAGIC_overload|5.024000||p PERL_MAGIC_pos|5.007002||p PERL_MAGIC_qr|5.007002||p PERL_MAGIC_regdata|5.007002||p @@ -663,7 +679,7 @@ PERL_SUBVERSION|5.006000||p PERL_SYS_INIT3||5.006000| PERL_SYS_INIT||| -PERL_SYS_TERM||5.021008| +PERL_SYS_TERM||5.024000| PERL_UCHAR_MAX|5.003070||p PERL_UCHAR_MIN|5.003070||p PERL_UINT_MAX|5.003070||p @@ -673,6 +689,7 @@ PERL_UNUSED_ARG|5.009003||p PERL_UNUSED_CONTEXT|5.009004||p PERL_UNUSED_DECL|5.007002||p +PERL_UNUSED_RESULT|5.021001||p PERL_UNUSED_VAR|5.007002||p PERL_UQUAD_MAX|5.003070||p PERL_UQUAD_MIN|5.003070||p @@ -685,13 +702,13 @@ PL_DBsub|||pn PL_DBtrace|||pn PL_Sv|5.005000||p -PL_bufend|5.021008||p -PL_bufptr|5.021008||p +PL_bufend|5.024000||p +PL_bufptr|5.024000||p PL_check||5.006000| PL_compiling|5.004050||p PL_comppad_name||5.017004| PL_comppad||5.008001| -PL_copline|5.021008||p +PL_copline|5.024000||p PL_curcop|5.004050||p PL_curpad||5.005000| PL_curstash|5.004050||p @@ -701,18 +718,18 @@ PL_dirty|5.004050||p PL_dowarn|||pn PL_errgv|5.004050||p -PL_error_count|5.021008||p -PL_expect|5.021008||p +PL_error_count|5.024000||p +PL_expect|5.024000||p PL_hexdigit|5.005000||p PL_hints|5.005000||p -PL_in_my_stash|5.021008||p -PL_in_my|5.021008||p +PL_in_my_stash|5.024000||p +PL_in_my|5.024000||p PL_keyword_plugin||5.011002| PL_last_in_gv|||n PL_laststatval|5.005000||p -PL_lex_state|5.021008||p -PL_lex_stuff|5.021008||p -PL_linestr|5.021008||p +PL_lex_state|5.024000||p +PL_lex_stuff|5.024000||p +PL_linestr|5.024000||p PL_modglobal||5.005000|n PL_na|5.004050||pn PL_no_modify|5.006000||p @@ -724,8 +741,8 @@ PL_perldb|5.004050||p PL_ppaddr|5.006000||p PL_rpeepp||5.013005|n -PL_rsfp_filters|5.021008||p -PL_rsfp|5.021008||p +PL_rsfp_filters|5.024000||p +PL_rsfp|5.024000||p PL_rs|||n PL_signals|5.008001||p PL_stack_base|5.004050||p @@ -736,10 +753,11 @@ PL_sv_no|5.004050||pn PL_sv_undef|5.004050||pn PL_sv_yes|5.004050||pn +PL_sv_zero|||n PL_tainted|5.004050||p PL_tainting|5.004050||p -PL_tokenbuf|5.021008||p -POP_MULTICALL||5.021008| +PL_tokenbuf|5.024000||p +POP_MULTICALL||5.024000| POPi|||n POPl|||n POPn|||n @@ -747,6 +765,8 @@ POPpx||5.005030|n POPp|||n POPs|||n +POPul||5.006000|n +POPu||5.004000|n PTR2IV|5.006000||p PTR2NV|5.006000||p PTR2UV|5.006000||p @@ -754,7 +774,7 @@ PTR2ul|5.007001||p PTRV|5.006000||p PUSHMARK||| -PUSH_MULTICALL||5.021008| +PUSH_MULTICALL||5.024000| PUSHi||| PUSHmortal|5.009002||p PUSHn||| @@ -762,29 +782,29 @@ PUSHs||| PUSHu|5.004000||p PUTBACK||| -PadARRAY||5.021008| -PadMAX||5.021008| -PadlistARRAY||5.021008| -PadlistMAX||5.021008| -PadlistNAMESARRAY||5.021008| -PadlistNAMESMAX||5.021008| -PadlistNAMES||5.021008| +PadARRAY||5.024000| +PadMAX||5.024000| +PadlistARRAY||5.024000| +PadlistMAX||5.024000| +PadlistNAMESARRAY||5.024000| +PadlistNAMESMAX||5.024000| +PadlistNAMES||5.024000| PadlistREFCNT||5.017004| PadnameIsOUR||| PadnameIsSTATE||| -PadnameLEN||5.021008| +PadnameLEN||5.024000| PadnameOURSTASH||| PadnameOUTER||| -PadnamePV||5.021008| -PadnameREFCNT_dec||5.021008| -PadnameREFCNT||5.021008| -PadnameSV||5.021008| +PadnamePV||5.024000| +PadnameREFCNT_dec||5.024000| +PadnameREFCNT||5.024000| +PadnameSV||5.024000| PadnameTYPE||| PadnameUTF8||5.021007| -PadnamelistARRAY||5.021008| -PadnamelistMAX||5.021008| -PadnamelistREFCNT_dec||5.021008| -PadnamelistREFCNT||5.021008| +PadnamelistARRAY||5.024000| +PadnamelistMAX||5.024000| +PadnamelistREFCNT_dec||5.024000| +PadnamelistREFCNT||5.024000| PerlIO_clearerr||5.007003| PerlIO_close||5.007003| PerlIO_context_layers||5.009004| @@ -810,12 +830,23 @@ PerlIO_tell||5.007003| PerlIO_unread||5.007003| PerlIO_write||5.007003| -Perl_signbit||5.009005|n +PerlLIO_dup2_cloexec||| +PerlLIO_dup_cloexec||| +PerlLIO_open3_cloexec||| +PerlLIO_open_cloexec||| +PerlProc_pipe_cloexec||| +PerlSock_accept_cloexec||| +PerlSock_socket_cloexec||| +PerlSock_socketpair_cloexec||| +Perl_langinfo|||n +Perl_setlocale|||n PoisonFree|5.009004||p PoisonNew|5.009004||p PoisonWith|5.009004||p Poison|5.008000||p READ_XDIGIT||5.017006| +REPLACEMENT_CHARACTER_UTF8||| +RESTORE_LC_NUMERIC||5.024000| RETVAL|||n Renewc||| Renew||| @@ -830,6 +861,8 @@ START_MY_CXT|5.007003||p STMT_END|||p STMT_START|||p +STORE_LC_NUMERIC_FORCE_TO_UNDERLYING||5.024000| +STORE_LC_NUMERIC_SET_TO_NEEDED||5.024000| STR_WITH_LEN|5.009003||p ST||| SV_CONST_RETURN|5.009003||p @@ -914,6 +947,7 @@ SvPOK_on||| SvPOKp||| SvPOK||| +SvPVCLEAR||| SvPVX_const|5.009003||p SvPVX_mutable|5.009003||p SvPVX||| @@ -951,6 +985,9 @@ SvPVutf8||5.006000| SvPVx||| SvPV||| +SvREADONLY_off||| +SvREADONLY_on||| +SvREADONLY||| SvREFCNT_dec_NN||5.017007| SvREFCNT_dec||| SvREFCNT_inc_NN|5.009004||p @@ -967,8 +1004,8 @@ SvROK||| SvRV_set|5.009003||p SvRV||| -SvRXOK||5.009005| -SvRX||5.009005| +SvRXOK|5.009005||p +SvRX|5.009005||p SvSETMAGIC||| SvSHARED_HASH|5.009003||p SvSHARE||5.007003| @@ -1002,7 +1039,17 @@ SvVSTRING_mg|5.009004||p THIS|||n UNDERBAR|5.009002||p +UNICODE_REPLACEMENT|||p +UNLIKELY|||p +UTF8SKIP||5.006000| +UTF8_IS_INVARIANT||| +UTF8_IS_NONCHAR||| +UTF8_IS_SUPER||| +UTF8_IS_SURROGATE||| UTF8_MAXBYTES|5.009002||p +UTF8_SAFE_SKIP|||p +UVCHR_IS_INVARIANT||| +UVCHR_SKIP||5.022000| UVSIZE|5.006000||p UVTYPE|5.006000||p UVXf|5.007001||p @@ -1011,7 +1058,7 @@ UVxf|5.006000||p WARN_ALL|5.006000||p WARN_AMBIGUOUS|5.006000||p -WARN_ASSERTIONS|5.021008||p +WARN_ASSERTIONS|5.024000||p WARN_BAREWORD|5.006000||p WARN_CLOSED|5.006000||p WARN_CLOSURE|5.006000||p @@ -1084,88 +1131,48 @@ XST_mUNDEF||| XST_mUV|5.008001||p XST_mYES||| -XS_APIVERSION_BOOTCHECK||5.021008| -XS_EXTERNAL||5.021008| -XS_INTERNAL||5.021008| -XS_VERSION_BOOTCHECK||5.021008| +XS_APIVERSION_BOOTCHECK||5.024000| +XS_EXTERNAL||5.024000| +XS_INTERNAL||5.024000| +XS_VERSION_BOOTCHECK||5.024000| XS_VERSION||| XSprePUSH|5.006000||p XS||| -XopDISABLE||5.021008| -XopENABLE||5.021008| -XopENTRYCUSTOM||5.021008| -XopENTRY_set||5.021008| -XopENTRY||5.021008| +XopDISABLE||5.024000| +XopENABLE||5.024000| +XopENTRYCUSTOM||5.024000| +XopENTRY_set||5.024000| +XopENTRY||5.024000| XopFLAGS||5.013007| ZeroD|5.009002||p Zero||| +__ASSERT_|||p _aMY_CXT|5.007003||p -_add_range_to_invlist||| -_append_range_to_invlist||| -_core_swash_init||| -_get_encoding||| -_get_regclass_nonbitmap_data||| -_get_swash_invlist||| -_invlist_array_init|||n -_invlist_contains_cp|||n -_invlist_contents||| -_invlist_dump||| -_invlist_intersection_maybe_complement_2nd||| -_invlist_intersection||| -_invlist_invert||| -_invlist_len|||n -_invlist_populate_swatch|||n -_invlist_search|||n -_invlist_subtract||| -_invlist_union_maybe_complement_2nd||| -_invlist_union||| -_is_cur_LC_category_utf8||| -_is_in_locale_category||5.021001| -_is_uni_FOO||5.017008| -_is_uni_perl_idcont||5.017008| -_is_uni_perl_idstart||5.017007| -_is_utf8_FOO||5.017008| -_is_utf8_char_slow||5.021001|n -_is_utf8_idcont||5.021001| -_is_utf8_idstart||5.021001| -_is_utf8_mark||5.017008| -_is_utf8_perl_idcont||5.017008| -_is_utf8_perl_idstart||5.017007| -_is_utf8_xidcont||5.021001| -_is_utf8_xidstart||5.021001| -_load_PL_utf8_foldclosures||| -_make_exactf_invlist||| +_inverse_folds||| +_is_grapheme||| +_is_in_locale_category||| _new_invlist_C_array||| -_new_invlist||| _pMY_CXT|5.007003||p -_setup_canned_invlist||| -_swash_inversion_hash||| -_swash_to_invlist||| -_to_fold_latin1||| -_to_uni_fold_flags||5.014000| +_to_fold_latin1|||n _to_upper_title_latin1||| -_to_utf8_fold_flags||5.019009| -_to_utf8_lower_flags||5.019009| -_to_utf8_title_flags||5.019009| -_to_utf8_upper_flags||5.019009| +_to_utf8_case||| +_variant_byte_number|||n _warn_problematic_locale|||n aMY_CXT_|5.007003||p aMY_CXT|5.007003||p -aTHXR_|5.021008||p -aTHXR|5.021008||p +aTHXR_|5.024000||p +aTHXR|5.024000||p aTHX_|5.006000||p aTHX|5.006000||p -aassign_common_vars||| +abort_execution||| add_above_Latin1_folds||| -add_cp_to_invlist||| add_data|||n add_multi_match||| add_utf16_textfilter||| adjust_size_and_find_bucket|||n +advance_one_LB||| advance_one_SB||| advance_one_WB||| -alloc_maybe_populate_EXACT||| -alloccopstash||| allocmy||| amagic_call||| amagic_cmp_locale||| @@ -1177,19 +1184,16 @@ anonymise_cv_maybe||| any_dup||| ao||| -append_utf8_from_native_byte||5.019004|n apply_attrs_my||| -apply_attrs_string||5.006001| apply_attrs||| apply||| +argvout_final||| assert_uft8_cache_coherent||| assignment_type||| atfork_lock||5.007003|n atfork_unlock||5.007003|n av_arylen_p||5.009003| av_clear||| -av_create_and_push||5.009005| -av_create_and_unshift_one||5.009005| av_delete||5.006000| av_exists||5.006000| av_extend_guts||| @@ -1199,16 +1203,19 @@ av_iter_p||5.011000| av_len||| av_make||| +av_nonelem||| av_pop||| av_push||| av_reify||| av_shift||| av_store||| -av_tindex||5.017009| -av_top_index||5.017009| +av_tindex|5.017009|5.017009|p +av_top_index|5.017009|5.017009|p av_undef||| av_unshift||| ax|||n +backup_one_GCB||| +backup_one_LB||| backup_one_SB||| backup_one_WB||| bad_type_gv||| @@ -1223,8 +1230,7 @@ boot_core_UNIVERSAL||| boot_core_mro||| bytes_cmp_utf8||5.013007| -bytes_from_utf8||5.007001| -bytes_to_utf8||5.006001| +cBOOL|5.013000||p call_argv|5.006000||p call_atexit||5.006000| call_list||5.004000| @@ -1238,11 +1244,19 @@ cast_iv||5.006000|n cast_ulong||5.006000|n cast_uv||5.006000|n -check_locale_boundary_crossing||| +category_name|||n +change_engine_size||| +check_and_deprecate||| check_type_and_open||| check_uni||| -check_utf8_print||| checkcomma||| +ckWARN2_d||| +ckWARN2||| +ckWARN3_d||| +ckWARN3||| +ckWARN4_d||| +ckWARN4||| +ckWARN_d||| ckWARN|5.006000||p ck_entersub_args_core||| ck_entersub_args_list||5.013006| @@ -1253,7 +1267,7 @@ ckwarn_common||| ckwarn_d||5.009003| ckwarn||5.009003| -clear_placeholders||| +clear_defarray||5.023008| clear_special_blocks||| clone_params_del|||n clone_params_new|||n @@ -1261,14 +1275,12 @@ cntrl_to_mnemonic|||n compute_EXACTish|||n construct_ahocorasick_from_trie||| -cop_fetch_label||5.015001| cop_free||| cop_hints_2hv||5.013007| cop_hints_fetch_pvn||5.013007| cop_hints_fetch_pvs||5.013007| cop_hints_fetch_pv||5.013007| cop_hints_fetch_sv||5.013007| -cop_store_label||5.015001| cophh_2hv||5.013007| cophh_copy||5.013007| cophh_delete_pvn||5.013007| @@ -1280,23 +1292,22 @@ cophh_fetch_pv||5.013007| cophh_fetch_sv||5.013007| cophh_free||5.013007| -cophh_new_empty||5.021008| +cophh_new_empty||5.024000| cophh_store_pvn||5.013007| cophh_store_pvs||5.013007| cophh_store_pv||5.013007| cophh_store_sv||5.013007| core_prototype||| coresub_op||| -could_it_be_a_POSIX_class|||n cr_textfilter||| -create_eval_scope||| -croak_memory_wrap||5.019003|n +croak_caller|||vn +croak_memory_wrap|5.019003||pn croak_no_mem|||n -croak_no_modify||5.013003|n -croak_nocontext|||vn +croak_no_modify|5.013003||pn +croak_nocontext|||pvn croak_popstack|||n -croak_sv||5.013001| -croak_xs_usage||5.010001|n +croak_sv|5.013001||p +croak_xs_usage|5.010001||pn croak|||v csighandler||5.009003|n current_re_engine||| @@ -1306,13 +1317,13 @@ custom_op_name||5.007003| custom_op_register||5.013007| custom_op_xop||5.013007| -cv_ckproto_len_flags||| cv_clone_into||| cv_clone||| cv_const_sv_or_av|||n cv_const_sv||5.003070|n cv_dump||| cv_forget_slab||| +cv_get_call_checker_flags||| cv_get_call_checker||5.013006| cv_name||5.021005| cv_set_call_checker_flags||5.021004| @@ -1336,7 +1347,7 @@ dORIGMARK||| dSP||| dTHR|5.004050||p -dTHXR|5.021008||p +dTHXR|5.024000||p dTHXa|5.006000||p dTHXoa|5.006000||p dTHX|5.006000||p @@ -1359,13 +1370,12 @@ deb||5.007003|v defelem_target||| del_sv||| -delete_eval_scope||| +delimcpy_no_escape|||n delimcpy||5.004000|n -deprecate_commaless_var_list||| despatch_signals||5.007001| destroy_matcher||| die_nocontext|||vn -die_sv||5.013001| +die_sv|5.013001||p die_unwind||| die|||v dirp_dup||| @@ -1381,7 +1391,6 @@ do_dump_pad||| do_eof||| do_exec3||| -do_execfree||| do_exec||| do_gv_dump||5.006000| do_gvgv_dump||5.006000| @@ -1395,9 +1404,7 @@ do_ncmp||| do_oddball||| do_op_dump||5.006000| -do_open6||| do_open9||5.006000| -do_open_raw||| do_openn||5.007001| do_open||5.003070| do_pmop_dump||5.006000| @@ -1424,7 +1431,8 @@ do_vecset||| do_vop||| docatch||| -doeval||| +does_utf8_overflow|||n +doeval_compile||| dofile||| dofindlabel||| doform||| @@ -1433,7 +1441,7 @@ doopen_pm||| doparseform||| dopoptoeval||| -dopoptogiven||| +dopoptogivenfor||| dopoptolabel||| dopoptoloop||| dopoptosub_at||| @@ -1443,6 +1451,10 @@ dowantarray||| drand48_init_r|||n drand48_r|||n +dtrace_probe_call||| +dtrace_probe_load||| +dtrace_probe_op||| +dtrace_probe_phase||| dump_all_perl||| dump_all||5.006000| dump_c_backtrace||| @@ -1453,6 +1465,7 @@ dump_mstats||| dump_packsubs_perl||| dump_packsubs||5.006000| +dump_regex_sets_structures||| dump_sub_perl||| dump_sub||5.006000| dump_sv_child||| @@ -1462,7 +1475,9 @@ dump_vindent||5.006000| dumpuntil||| dup_attrlist||| -emulate_cop_io||| +dup_warnings||| +edit_distance|||n +emulate_setlocale|||n eval_pv|5.006000||p eval_sv|5.006000||p exec_failed||| @@ -1484,18 +1499,18 @@ find_hash_subscript||| find_in_my_stash||| find_lexical_cv||| +find_next_masked|||n find_runcv_where||| find_runcv||5.008001| -find_rundefsv2||| -find_rundefsvoffset||5.009002| find_rundefsv||5.013002| find_script||| -find_uninit_var||| +find_span_end_mask|||n +find_span_end|||n first_symbol|||n fixup_errno_string||| +foldEQ_latin1_s2_folded|||n foldEQ_latin1||5.013008|n foldEQ_locale||5.013002|n -foldEQ_utf8_flags||5.013010| foldEQ_utf8||5.013002| foldEQ||5.013002|n fold_constants||| @@ -1509,7 +1524,6 @@ force_word||| forget_pmop||| form_nocontext|||vn -form_short_octal_warning||| form||5.004000|v fp_dup||| fprintf_nocontext|||vn @@ -1518,23 +1532,22 @@ free_tied_hv_pool||| free_tmps||| gen_constant_list||| +get_ANYOFM_contents||| get_ANYOF_cp_list_for_ssc||| +get_and_check_backslash_N_name_wrapper||| get_and_check_backslash_N_name||| get_aux_mg||| get_av|5.006000||p get_c_backtrace_dump||| get_c_backtrace||| get_context||5.006000|n -get_cvn_flags|5.009005||p +get_cvn_flags||| get_cvs|5.011000||p get_cv|5.006000||p get_db_sub||| get_debug_opts||| get_hash_seed||| get_hv|5.006000||p -get_invlist_iter_addr|||n -get_invlist_offset_addr|||n -get_invlist_previous_index_addr|||n get_mstats||| get_no_modify||| get_num||| @@ -1542,7 +1555,6 @@ get_op_names||5.005000| get_opargs||| get_ppaddr||5.006000| -get_re_arg||| get_sv|5.006000||p get_vtbl||5.005030| getcwd_sv||5.007002| @@ -1555,9 +1567,6 @@ grok_atoUV|||n grok_bin|5.007003||p grok_bslash_N||| -grok_bslash_c||| -grok_bslash_o||| -grok_bslash_x||| grok_hex|5.007003||p grok_infnan||5.021004| grok_number_flags||5.021002| @@ -1591,20 +1600,17 @@ gv_fetchmeth_sv_autoload||5.015004| gv_fetchmeth_sv||5.015004| gv_fetchmethod_autoload||5.004000| -gv_fetchmethod_pv_flags||5.015004| -gv_fetchmethod_pvn_flags||5.015004| -gv_fetchmethod_sv_flags||5.015004| gv_fetchmethod||| gv_fetchmeth||| gv_fetchpvn_flags|5.009002||p gv_fetchpvs|5.009004||p gv_fetchpv||| -gv_fetchsv|5.009002||p +gv_fetchsv||| gv_fullname3||5.003070| gv_fullname4||5.006001| gv_fullname||| gv_handler||5.007001| -gv_init_pvn||5.015004| +gv_init_pvn||| gv_init_pv||5.015004| gv_init_svtype||| gv_init_sv||5.015004| @@ -1621,24 +1627,23 @@ gv_stashpv||| gv_stashsvpvn_cached||| gv_stashsv||| -gv_try_downgrade||| +handle_named_backref||| +handle_possible_posix||| handle_regex_sets||| +handle_user_defined_property||| he_dup||| hek_dup||| hfree_next_entry||| -hfreeentries||| hsplit||| hv_assert||| hv_auxinit_internal|||n hv_auxinit||| -hv_backreferences_p||| hv_clear_placeholders||5.009001| hv_clear||| hv_common_key_len||5.010000| hv_common||5.010000| hv_copy_hints_hv||5.009004| hv_delayfree_ent||5.004000| -hv_delete_common||| hv_delete_ent||5.003070| hv_delete||| hv_eiter_p||5.009003| @@ -1652,15 +1657,14 @@ hv_fetch||| hv_fill||5.013002| hv_free_ent_ret||| +hv_free_entries||| hv_free_ent||5.004000| hv_iterinit||| hv_iterkeysv||5.003070| hv_iterkey||| -hv_iternext_flags||5.008000| hv_iternextsv||| hv_iternext||| hv_iterval||| -hv_kill_backrefs||| hv_ksplit||5.003070| hv_magic_check|||n hv_magic||| @@ -1669,12 +1673,12 @@ hv_placeholders_get||5.009003| hv_placeholders_p||| hv_placeholders_set||5.009003| +hv_pushkv||| hv_rand_set||5.018000| hv_riter_p||5.009003| hv_riter_set||5.009003| hv_scalar||5.009001| hv_store_ent||5.003070| -hv_store_flags||5.008000| hv_stores|5.009004||p hv_store||| hv_undef_flags||| @@ -1692,130 +1696,107 @@ init_dbargs||| init_debugger||| init_global_struct||| -init_i18nl10n||5.006000| -init_i18nl14n||5.006000| init_ids||| init_interp||| init_main_stash||| +init_named_cv||| init_perllib||| init_postdump_symbols||| init_predump_symbols||| init_stacks||5.005000| init_tm||5.007002| +init_uniprops||| inplace_aassign||| instr|||n intro_my||5.004000| intuit_method||| intuit_more||| invert||| -invlist_array|||n -invlist_clone||| -invlist_extend||| -invlist_highest|||n -invlist_is_iterating|||n -invlist_iterfinish|||n -invlist_iterinit|||n -invlist_iternext|||n -invlist_max|||n -invlist_previous_index|||n -invlist_set_len||| -invlist_set_previous_index|||n -invlist_trim|||n invoke_exception_hook||| io_close||| +isALNUMC_A|||p isALNUMC|5.006000||p -isALNUM_lazy||5.021001| -isALPHANUMERIC||5.017008| -isALPHA||| +isALNUM_A|||p +isALNUM|||p +isALPHANUMERIC_A|||p +isALPHANUMERIC|5.017008|5.017008|p +isALPHA_A|||p +isALPHA|||p +isASCII_A|||p isASCII|5.006000||p +isBLANK_A|||p isBLANK|5.006001||p +isC9_STRICT_UTF8_CHAR|||n +isCNTRL_A|||p isCNTRL|5.006000||p -isDIGIT||| -isFOO_lc||| +isDIGIT_A|||p +isDIGIT|||p +isFF_OVERLONG|||n isFOO_utf8_lc||| -isGCB|||n +isGCB||| +isGRAPH_A|||p isGRAPH|5.006000||p -isGV_with_GP|5.009004||p -isIDCONT||5.017008| -isIDFIRST_lazy||5.021001| -isIDFIRST||| -isLOWER||| -isOCTAL||5.013005| +isIDCONT_A|||p +isIDCONT|5.017008|5.017008|p +isIDFIRST_A|||p +isIDFIRST|||p +isLB||| +isLOWER_A|||p +isLOWER|||p +isOCTAL_A|||p +isOCTAL|5.013005|5.013005|p +isPRINT_A|||p isPRINT|5.004000||p +isPSXSPC_A|||p isPSXSPC|5.006001||p +isPUNCT_A|||p isPUNCT|5.006000||p isSB||| -isSPACE||| -isUPPER||| -isUTF8_CHAR||5.021001| +isSCRIPT_RUN||| +isSPACE_A|||p +isSPACE|||p +isSTRICT_UTF8_CHAR|||n +isUPPER_A|||p +isUPPER|||p +isUTF8_CHAR_flags||| +isUTF8_CHAR||5.021001|n isWB||| -isWORDCHAR||5.013006| +isWORDCHAR_A|||p +isWORDCHAR|5.013006|5.013006|p +isXDIGIT_A|||p isXDIGIT|5.006000||p is_an_int||| -is_ascii_string||5.011000| +is_ascii_string||5.011000|n +is_c9strict_utf8_string_loclen|||n +is_c9strict_utf8_string_loc|||n +is_c9strict_utf8_string|||n is_handle_constructor|||n is_invariant_string||5.021007|n is_lvalue_sub||5.007001| is_safe_syscall||5.019004| is_ssc_worth_it|||n -is_uni_alnum_lc||5.006000| -is_uni_alnumc_lc||5.017007| -is_uni_alnumc||5.017007| -is_uni_alnum||5.006000| -is_uni_alpha_lc||5.006000| -is_uni_alpha||5.006000| -is_uni_ascii_lc||5.006000| -is_uni_ascii||5.006000| -is_uni_blank_lc||5.017002| -is_uni_blank||5.017002| -is_uni_cntrl_lc||5.006000| -is_uni_cntrl||5.006000| -is_uni_digit_lc||5.006000| -is_uni_digit||5.006000| -is_uni_graph_lc||5.006000| -is_uni_graph||5.006000| -is_uni_idfirst_lc||5.006000| -is_uni_idfirst||5.006000| -is_uni_lower_lc||5.006000| -is_uni_lower||5.006000| -is_uni_print_lc||5.006000| -is_uni_print||5.006000| -is_uni_punct_lc||5.006000| -is_uni_punct||5.006000| -is_uni_space_lc||5.006000| -is_uni_space||5.006000| -is_uni_upper_lc||5.006000| -is_uni_upper||5.006000| -is_uni_xdigit_lc||5.006000| -is_uni_xdigit||5.006000| -is_utf8_alnumc||5.017007| -is_utf8_alnum||5.006000| -is_utf8_alpha||5.006000| -is_utf8_ascii||5.006000| -is_utf8_blank||5.017002| +is_strict_utf8_string_loclen|||n +is_strict_utf8_string_loc|||n +is_strict_utf8_string|||n is_utf8_char_buf||5.015008|n -is_utf8_char||5.006000|n -is_utf8_cntrl||5.006000| +is_utf8_common_with_len||| is_utf8_common||| -is_utf8_digit||5.006000| -is_utf8_graph||5.006000| -is_utf8_idcont||5.008000| -is_utf8_idfirst||5.006000| -is_utf8_lower||5.006000| -is_utf8_mark||5.006000| -is_utf8_perl_space||5.011001| -is_utf8_perl_word||5.011001| -is_utf8_posix_digit||5.011001| -is_utf8_print||5.006000| -is_utf8_punct||5.006000| -is_utf8_space||5.006000| +is_utf8_cp_above_31_bits|||n +is_utf8_fixed_width_buf_flags|||n +is_utf8_fixed_width_buf_loc_flags|||n +is_utf8_fixed_width_buf_loclen_flags|||n +is_utf8_invariant_string_loc|||n +is_utf8_invariant_string|||n +is_utf8_non_invariant_string|||n +is_utf8_overlong_given_start_byte_ok|||n +is_utf8_string_flags|||n +is_utf8_string_loc_flags|||n +is_utf8_string_loclen_flags|||n is_utf8_string_loclen||5.009003|n is_utf8_string_loc||5.008001|n is_utf8_string||5.006001|n -is_utf8_upper||5.006000| -is_utf8_xdigit||5.006000| -is_utf8_xidcont||5.013010| -is_utf8_xidfirst||5.013010| +is_utf8_valid_partial_char_flags|||n +is_utf8_valid_partial_char|||n isa_lookup||| isinfnansv||| isinfnan||5.021004|n @@ -1825,22 +1806,8 @@ join_exact||| keyword_plugin_standard||| keyword||| -leave_common||| leave_scope||| -lex_bufutf8||5.011002| -lex_discard_to||5.011002| -lex_grow_linestr||5.011002| -lex_next_chunk||5.011002| -lex_peek_unichar||5.011002| -lex_read_space||5.011002| -lex_read_to||5.011002| -lex_read_unichar||5.011002| -lex_start||5.009005| -lex_stuff_pvn||5.011002| lex_stuff_pvs||5.013005| -lex_stuff_pv||5.013006| -lex_stuff_sv||5.011002| -lex_unstuff||5.011002| listkids||| list||| load_module_nocontext|||vn @@ -1905,6 +1872,7 @@ magic_setlvref||| magic_setmglob||| magic_setnkeys||| +magic_setnonelem||| magic_setpack||| magic_setpos||| magic_setregexp||| @@ -1932,11 +1900,14 @@ memNEs|5.009005||p memNE|5.004000||p mem_collxfrm||| +mem_log_alloc|||n mem_log_common|||n +mem_log_free|||n +mem_log_realloc|||n mess_alloc||| -mess_nocontext|||vn -mess_sv||5.013001| -mess||5.006000|v +mess_nocontext|||pvn +mess_sv|5.013001||p +mess|5.006000||pv mfree||5.007002|n mg_clear||| mg_copy||| @@ -1945,9 +1916,9 @@ mg_findext|5.013008||pn mg_find|||n mg_free_type||5.013006| +mg_freeext||| mg_free||| mg_get||| -mg_length||5.005000| mg_localize||| mg_magical|||n mg_set||| @@ -1976,14 +1947,13 @@ mro_set_mro||5.010001| mro_set_private_data||5.010001| mul128||| -mulexp10|||n +multiconcat_stringify||| multideref_stringify||| my_atof2||5.007002| +my_atof3||| my_atof||5.006000| my_attrs||| -my_bcopy|||n my_bytes_to_utf8|||n -my_bzero|||n my_chsize||| my_clearenv||| my_cxt_index||| @@ -1996,23 +1966,27 @@ my_fork||5.007003|n my_kid||| my_lstat_flags||| -my_lstat||5.021008| -my_memcmp|||n -my_memset|||n +my_lstat||5.024000| +my_memrchr|||n +my_mkostemp|||n +my_mkstemp_cloexec|||n +my_mkstemp|||n +my_nl_langinfo|||n my_pclose||5.003070| my_popen_list||5.007001| my_popen||5.003070| my_setenv||| -my_setlocale||| my_snprintf|5.009004||pvn my_socketpair||5.007003|n my_sprintf|5.009003||pvn my_stat_flags||| -my_stat||5.021008| -my_strerror||5.021001| +my_stat||5.024000| +my_strerror||| my_strftime||5.007002| my_strlcat|5.009004||pn my_strlcpy|5.009004||pn +my_strnlen|||pn +my_strtod|||n my_unexec||| my_vsnprintf||5.009004|n need_utf8|||n @@ -2035,7 +2009,6 @@ newFOROP||5.013007| newGIVENOP||5.009003| newGIVWHENOP||| -newGP||| newGVOP||| newGVREF||| newGVgen_flags||5.015004| @@ -2054,9 +2027,6 @@ newMYSUB||5.017004| newNULLLIST||| newOP||| -newPADNAMELIST||5.021007|n -newPADNAMEouter||5.021007|n -newPADNAMEpvn||5.021007|n newPADOP||| newPMOP||| newPROG||| @@ -2089,6 +2059,8 @@ newSVpvs|5.009003||p newSVpv||| newSVrv||| +newSVsv_flags||| +newSVsv_nomg||| newSVsv||| newSVuv|5.006000||p newSV||| @@ -2097,19 +2069,19 @@ newWHENOP||5.009003| newWHILEOP||5.013007| newXS_deffile||| -newXS_flags||5.009004| newXS_len_flags||| newXSproto||5.006000| newXS||5.006000| -new_collate||5.006000| +new_collate||| new_constant||| -new_ctype||5.006000| +new_ctype||| new_he||| new_logop||| -new_numeric||5.006000| +new_msg_hv||| +new_numeric||| +new_regcurly|||n new_stackinfo||5.005000| new_version||5.009000| -new_warnings_bitfield||| next_symbol||| nextargv||| nextchar||| @@ -2121,12 +2093,14 @@ not_a_number||| not_incrementable||| nothreadhook||5.008000| +notify_parser_that_changed_to_utf8||| nuke_stacks||| num_overflow|||n oopsAV||| oopsHV||| op_append_elem||5.013006| op_append_list||5.013006| +op_class||| op_clear||| op_contextualize||5.013006| op_convert_list||5.021006| @@ -2135,19 +2109,14 @@ op_integerize||| op_linklist||5.013006| op_lvalue_flags||| -op_lvalue||5.013007| op_null||5.007002| -op_parent||5.021002|n +op_parent|||n op_prepend_elem||5.013006| -op_refcnt_dec||| -op_refcnt_inc||| op_refcnt_lock||5.009002| op_refcnt_unlock||5.009002| op_relocate_sv||| -op_scope||5.013007| op_sibling_splice||5.021002|n op_std_init||| -op_unscope||| open_script||| openn_cleanup||| openn_setup||| @@ -2155,6 +2124,9 @@ opslab_force_free||| opslab_free_nopad||| opslab_free||| +optimize_optree||| +optimize_op||| +output_posix_warnings||| pMY_CXT_|5.007003||p pMY_CXT|5.007003||p pTHX_|5.006000||p @@ -2172,7 +2144,6 @@ pad_add_name_sv||5.015001| pad_add_weakref||| pad_alloc_name||| -pad_alloc||| pad_block_start||| pad_check_dup||| pad_compname_type||5.009003| @@ -2190,30 +2161,18 @@ pad_setsv||| pad_sv||| pad_swipe||| -pad_tidy||5.008001| padlist_dup||| padlist_store||| padname_dup||| padname_free||| padnamelist_dup||| -padnamelist_fetch||5.021007|n padnamelist_free||| -padnamelist_store||5.021007| -parse_arithexpr||5.013008| -parse_barestmt||5.013007| -parse_block||5.013007| parse_body||| -parse_fullexpr||5.013008| -parse_fullstmt||5.013005| parse_gv_stash_name||| parse_ident||| -parse_label||5.013007| -parse_listexpr||5.013008| parse_lparen_question_flags||| -parse_stmtseq||5.013006| -parse_subsignature||| -parse_termexpr||5.013008| parse_unicode_opts||| +parse_uniprop_string||| parser_dup||| parser_free_nexttoke_ops||| parser_free||| @@ -2242,11 +2201,12 @@ pregfree2||5.011000| pregfree||| prescan_version||5.011004| +print_bytes_for_locale||| +print_collxfrm_input_and_return||| printbuf||| printf_nocontext|||vn process_special_blocks||| ptr_hash|||n -ptr_table_clear||5.009005| ptr_table_fetch||5.009005| ptr_table_find|||n ptr_table_free||5.009005| @@ -2254,6 +2214,8 @@ ptr_table_split||5.009005| ptr_table_store||5.009005| push_scope||| +put_charclass_bitmap_innards_common||| +put_charclass_bitmap_innards_invlist||| put_charclass_bitmap_innards||| put_code_point||| put_range||| @@ -2262,20 +2224,22 @@ pv_pretty|5.009004||p pv_uni_display||5.007003| qerror||| -qsortsvu||| quadmath_format_needed|||n quadmath_format_single|||n re_compile||5.009005| re_croak2||| re_dup_guts||| +re_exec_indentf|||v +re_indentf|||v re_intuit_start||5.019001| re_intuit_string||5.006000| re_op_compile||| +re_printf|||v realloc||5.007002|n -reentrant_free||5.021008| -reentrant_init||5.021008| -reentrant_retry||5.021008|vn -reentrant_size||5.021008| +reentrant_free||5.024000| +reentrant_init||5.024000| +reentrant_retry||5.024000|vn +reentrant_size||5.024000| ref_array_or_hash||| refcounted_he_chain_2hv||| refcounted_he_fetch_pvn||| @@ -2291,7 +2255,7 @@ refcounted_he_value||| refkids||| refto||| -ref||5.021008| +ref||5.024000| reg2Lanode||| reg_check_named_buff_matched|||n reg_named_buff_all||5.009005| @@ -2307,15 +2271,14 @@ reg_numbered_buff_length||| reg_numbered_buff_store||| reg_qr_package||| -reg_recode||| reg_scan_name||| reg_skipcomment|||n reg_temp_copy||| reganode||| regatom||| regbranch||| -regclass_swash||5.009004| regclass||| +regcp_restore||| regcppop||| regcppush||| regcurly|||n @@ -2323,6 +2286,7 @@ regdump_intflags||| regdump||5.005000| regdupe_internal||| +regex_set_precedence|||n regexec_flags||5.005000| regfree_internal||5.009005| reghop3|||n @@ -2334,9 +2298,7 @@ regmatch||| regnext||5.005000| regnode_guts||| -regpatws|||n regpiece||| -regpposixcc||| regprop||| regrepeat||| regtail_study||| @@ -2351,6 +2313,7 @@ require_pv||5.006000| require_tie_mod||| restore_magic||| +restore_switched_locale||| rninstr|||n rpeep||| rsignal_restore||| @@ -2377,7 +2340,6 @@ save_adelete||5.011000| save_aelem_flags||5.011000| save_aelem||5.004050| -save_aliased_sv||| save_alloc||5.006000| save_aptr||| save_ary||| @@ -2423,6 +2385,7 @@ save_sptr||| save_strlen||| save_svref||| +save_to_buffer|||n save_vptr||5.006000| savepvn||| savepvs||5.009003| @@ -2452,30 +2415,35 @@ scan_num||5.007001| scan_oct||| scan_pat||| -scan_str||| scan_subst||| scan_trans||| scan_version||5.009001| scan_vstring||5.009005| -scan_word||| search_const||| seed||5.008001| sequence_num||| set_ANYOF_arg||| set_caret_X||| set_context||5.006000|n -set_numeric_local||5.006000| set_numeric_radix||5.006000| set_numeric_standard||5.006000| +set_numeric_underlying||| set_padlist|||n +set_regex_pv||| setdefout||| +setfd_cloexec_for_nonsysfd||| +setfd_cloexec_or_inhexec_by_sysfdness||| +setfd_cloexec|||n +setfd_inhexec_for_sysfd||| +setfd_inhexec|||n +setlocale_debug_string|||n share_hek_flags||| share_hek||5.004000| should_warn_nl|||n si_dup||| sighandler|||n simplify_sort||| -skipspace_flags||| +skip_to_be_ignored_text||| softref2xv||| sortcv_stacked||| sortcv_xsub||| @@ -2497,7 +2465,6 @@ ssc_or||| ssc_union||| stack_grow||| -start_glob||| start_subparse||5.004000| stdize_locale||| strEQ||| @@ -2524,7 +2491,6 @@ sv_2iv_flags||5.009001| sv_2iv||| sv_2mortal||| -sv_2num||| sv_2nv_flags||5.013001| sv_2pv_flags|5.007002||p sv_2pv_nolen|5.006000||p @@ -2598,10 +2564,8 @@ sv_exp_grow||| sv_force_normal_flags||5.007001| sv_force_normal||5.006000| -sv_free2||| sv_free_arenas||| sv_free||| -sv_get_backrefs||5.021008|n sv_gets||5.003070| sv_grow||| sv_i_ncmp||| @@ -2612,11 +2576,10 @@ sv_isa||| sv_isobject||| sv_iv||5.005000| -sv_kill_backrefs||| sv_len_utf8_nomg||| sv_len_utf8||5.006000| sv_len||| -sv_magic_portable|5.021008|5.004000|p +sv_magic_portable|5.024000|5.004000|p sv_magicext_mglob||| sv_magicext||5.007003| sv_magic||| @@ -2653,18 +2616,20 @@ sv_pv||5.006000| sv_recode_to_utf8||5.007003| sv_reftype||| -sv_ref||| -sv_release_COW||| +sv_ref||5.015004| sv_replace||| sv_report_used||| sv_resetpvn||| sv_reset||| +sv_rvunweaken||| sv_rvweaken||5.006000| +sv_set_undef||| sv_sethek||| sv_setiv_mg|5.004050||p sv_setiv||| sv_setnv_mg|5.006000||p sv_setnv||| +sv_setpv_bufsize||| sv_setpv_mg|5.004050||p sv_setpvf_mg_nocontext|||pvn sv_setpvf_mg|5.006000|5.004000|pv @@ -2680,16 +2645,16 @@ sv_setref_iv||| sv_setref_nv||| sv_setref_pvn||| -sv_setref_pvs||5.021008| +sv_setref_pvs||5.024000| sv_setref_pv||| sv_setref_uv||5.007001| -sv_setsv_cow||| sv_setsv_flags||5.007002| sv_setsv_mg|5.004050||p sv_setsv_nomg|5.007002||p sv_setsv||| sv_setuv_mg|5.004050||p sv_setuv|5.004000||p +sv_string_from_errnum||| sv_tainted||5.004000| sv_taint||5.004000| sv_true||5.005000| @@ -2704,8 +2669,8 @@ sv_usepvn_flags||5.009004| sv_usepvn_mg|5.004050||p sv_usepvn||| -sv_utf8_decode||5.006000| -sv_utf8_downgrade||5.006000| +sv_utf8_decode||| +sv_utf8_downgrade||| sv_utf8_encode||5.006000| sv_utf8_upgrade_flags_grow||5.011000| sv_utf8_upgrade_flags||5.007002| @@ -2721,11 +2686,10 @@ sv_vsetpvf|5.006000|5.004000|p svtype||| swallow_bom||| -swash_fetch||5.007002| -swash_init||5.006000| -swash_scan_list_line||| swatch_get||| -sync_locale||5.021004| +switch_category_locale_to_template||| +switch_to_global_locale|||n +sync_locale||5.021004|n sys_init3||5.010000|n sys_init||5.010000|n sys_intern_clear||| @@ -2736,43 +2700,39 @@ taint_proper||| tied_method|||v tmps_grow_p||| -toFOLD_uni||5.007003| +toFOLD_utf8_safe||| toFOLD_utf8||5.019001| +toFOLD_uvchr||5.023009| toFOLD||5.019001| toLOWER_L1||5.019001| toLOWER_LC||5.004000| -toLOWER_uni||5.007003| +toLOWER_utf8_safe||| toLOWER_utf8||5.015007| +toLOWER_uvchr||5.023009| toLOWER||| -toTITLE_uni||5.007003| +toTITLE_utf8_safe||| toTITLE_utf8||5.015007| +toTITLE_uvchr||5.023009| toTITLE||5.019001| -toUPPER_uni||5.007003| +toUPPER_utf8_safe||| toUPPER_utf8||5.015007| +toUPPER_uvchr||5.023009| toUPPER||| to_byte_substr||| to_lower_latin1|||n -to_uni_fold||5.007003| -to_uni_lower_lc||5.006000| -to_uni_lower||5.007003| -to_uni_title_lc||5.006000| -to_uni_title||5.007003| -to_uni_upper_lc||5.006000| -to_uni_upper||5.007003| -to_utf8_case||5.007003| -to_utf8_fold||5.015007| -to_utf8_lower||5.015007| to_utf8_substr||| -to_utf8_title||5.015007| -to_utf8_upper||5.015007| tokenize_use||| tokeq||| tokereport||| too_few_arguments_pv||| too_many_arguments_pv||| translate_substr_offsets|||n +traverse_op_tree||| try_amagic_bin||| try_amagic_un||| +turkic_fc||| +turkic_lc||| +turkic_uc||| uiv_2buf|||n unlnk||| unpack_rec||| @@ -2790,16 +2750,17 @@ utf16_to_utf8_reversed||5.006001| utf16_to_utf8||5.006001| utf8_distance||5.006000| +utf8_hop_back|||n +utf8_hop_forward|||n +utf8_hop_safe|||n utf8_hop||5.006000|n utf8_length||5.007001| utf8_mg_len_cache_update||| utf8_mg_pos_cache_update||| -utf8_to_bytes||5.006001| -utf8_to_uvchr_buf||5.015009| -utf8_to_uvchr||5.007001| -utf8_to_uvuni_buf||5.015009| -utf8_to_uvuni||5.007001| -utf8n_to_uvchr||5.007001| +utf8_to_uvchr_buf|5.015009|5.015009|p +utf8_to_uvchr|||p +utf8n_to_uvchr_error|||n +utf8n_to_uvchr||5.007001|n utf8n_to_uvuni||5.007001| utilize||| uvchr_to_utf8_flags||5.007003| @@ -2807,10 +2768,9 @@ uvoffuni_to_utf8_flags||5.019004| uvuni_to_utf8_flags||5.007003| uvuni_to_utf8||5.007001| -valid_utf8_to_uvchr||5.015009| -valid_utf8_to_uvuni||5.015009| -validate_proto||| +valid_utf8_to_uvchr|||n validate_suid||| +variant_under_utf8_count|||n varname||| vcmp||5.009000| vcroak||5.006000| @@ -2820,7 +2780,7 @@ vivify_defelem||| vivify_ref||| vload_module|5.006000||p -vmess||5.006000| +vmess|5.006000|5.006000|p vnewSVpvf|5.006000|5.004000|p vnormal||5.009002| vnumify||5.009000| @@ -2829,8 +2789,9 @@ vwarner||5.006000| vwarn||5.006000| wait4pid||| -warn_nocontext|||vn -warn_sv||5.013001| +warn_nocontext|||pvn +warn_on_first_deprecated_use||| +warn_sv|5.013001||p warner_nocontext|||vn warner|5.006000|5.004000|pv warn|||v @@ -2841,6 +2802,7 @@ whichsig_sv||5.015004| whichsig||| win32_croak_not_implemented|||n +win32_setlocale||| with_queued_errors||| wrap_op_checker||5.015008| write_to_stderr||| @@ -2852,6 +2814,7 @@ yyerror||| yylex||| yyparse||| +yyquit||| yyunlex||| yywarn||| ); @@ -3619,8 +3582,8 @@ # endif #endif -#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) -#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION)) +#define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) +#define PERL_BCDVERSION ((D_PPP_DEC2BCD(PERL_REVISION)<<24)|(D_PPP_DEC2BCD(PERL_VERSION)<<12)|D_PPP_DEC2BCD(PERL_SUBVERSION)) /* It is very unlikely that anyone will try to use this with Perl 6 (or greater), but who knows. @@ -4017,135 +3980,80 @@ #ifndef UVSIZE # define UVSIZE IVSIZE #endif -#ifndef sv_setuv -# define sv_setuv(sv, uv) \ - STMT_START { \ - UV TeMpUv = uv; \ - if (TeMpUv <= IV_MAX) \ - sv_setiv(sv, TeMpUv); \ - else \ - sv_setnv(sv, (double)TeMpUv); \ - } STMT_END -#endif -#ifndef newSVuv -# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) -#endif -#ifndef sv_2uv -# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) -#endif - -#ifndef SvUVX -# define SvUVX(sv) ((UV)SvIVX(sv)) -#endif - -#ifndef SvUVXx -# define SvUVXx(sv) SvUVX(sv) -#endif - -#ifndef SvUV -# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) +#ifndef cBOOL +# define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) #endif -#ifndef SvUVx -# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) +#ifndef OpHAS_SIBLING +# define OpHAS_SIBLING(o) (cBOOL((o)->op_sibling)) #endif -/* Hint: sv_uv - * Always use the SvUVx() macro instead of sv_uv(). - */ -#ifndef sv_uv -# define sv_uv(sv) SvUVx(sv) +#ifndef OpSIBLING +# define OpSIBLING(o) (0 + (o)->op_sibling) #endif -#if !defined(SvUOK) && defined(SvIOK_UV) -# define SvUOK(sv) SvIOK_UV(sv) -#endif -#ifndef XST_mUV -# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) +#ifndef OpMORESIB_set +# define OpMORESIB_set(o, sib) ((o)->op_sibling = (sib)) #endif -#ifndef XSRETURN_UV -# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END -#endif -#ifndef PUSHu -# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END +#ifndef OpLASTSIB_set +# define OpLASTSIB_set(o, parent) ((o)->op_sibling = NULL) #endif -#ifndef XPUSHu -# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END +#ifndef OpMAYBESIB_set +# define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib)) #endif -#ifdef HAS_MEMCMP -#ifndef memNE -# define memNE(s1,s2,l) (memcmp(s1,s2,l)) +#ifndef HEf_SVKEY +# define HEf_SVKEY -2 #endif -#ifndef memEQ -# define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) +#if defined(DEBUGGING) && !defined(__COVERITY__) +#ifndef __ASSERT_ +# define __ASSERT_(statement) assert(statement), #endif #else -#ifndef memNE -# define memNE(s1,s2,l) (bcmp(s1,s2,l)) -#endif - -#ifndef memEQ -# define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) -#endif - -#endif -#ifndef memEQs -# define memEQs(s1, l, s2) \ - (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1))) -#endif - -#ifndef memNEs -# define memNEs(s1, l, s2) !memEQs(s1, l, s2) -#endif -#ifndef MoveD -# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) +#ifndef __ASSERT_ +# define __ASSERT_(statement) #endif -#ifndef CopyD -# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) -#endif - -#ifdef HAS_MEMSET -#ifndef ZeroD -# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) #endif +#ifndef SvRX +#if defined(NEED_SvRX) +static void * DPPP_(my_SvRX)(pTHX_ SV *rv); +static #else -#ifndef ZeroD -# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) +extern void * DPPP_(my_SvRX)(pTHX_ SV *rv); #endif -#endif -#ifndef PoisonWith -# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) -#endif +#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL) -#ifndef PoisonNew -# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) +#ifdef SvRX +# undef SvRX #endif +#define SvRX(a) DPPP_(my_SvRX)(aTHX_ a) -#ifndef PoisonFree -# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) -#endif -#ifndef Poison -# define Poison(d,n,t) PoisonFree(d,n,t) -#endif -#ifndef Newx -# define Newx(v,n,t) New(0,v,n,t) +void * +DPPP_(my_SvRX)(pTHX_ SV *rv) +{ + if (SvROK(rv)) { + SV *sv = SvRV(rv); + if (SvMAGICAL(sv)) { + MAGIC *mg = mg_find(sv, PERL_MAGIC_qr); + if (mg && mg->mg_obj) { + return mg->mg_obj; + } + } + } + return 0; +} #endif - -#ifndef Newxc -# define Newxc(v,n,t,c) Newc(0,v,n,t,c) #endif - -#ifndef Newxz -# define Newxz(v,n,t) Newz(0,v,n,t) +#ifndef SvRXOK +# define SvRXOK(sv) (!!SvRX(sv)) #endif #ifndef PERL_UNUSED_DECL @@ -4180,6 +4088,14 @@ # define PERL_UNUSED_CONTEXT # endif #endif + +#ifndef PERL_UNUSED_RESULT +# if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT) +# define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END +# else +# define PERL_UNUSED_RESULT(v) ((void)(v)) +# endif +#endif #ifndef NOOP # define NOOP /*EMPTY*/(void)0 #endif @@ -4298,6 +4214,13 @@ #ifndef AvFILLp # define AvFILLp AvFILL #endif +#ifndef av_tindex +# define av_tindex AvFILL +#endif + +#ifndef av_top_index +# define av_top_index AvFILL +#endif #ifndef ERRSV # define ERRSV get_sv("@",FALSE) #endif @@ -4419,44 +4342,136 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); #endif -#ifndef isPSXSPC -# define isPSXSPC(c) (isSPACE(c) || (c) == '\v') -#endif -#ifndef isBLANK -# define isBLANK(c) ((c) == ' ' || (c) == '\t') +#ifndef WIDEST_UTYPE +# ifdef QUADKIND +# ifdef U64TYPE +# define WIDEST_UTYPE U64TYPE +# else +# define WIDEST_UTYPE Quad_t +# endif +# else +# define WIDEST_UTYPE U32 +# endif #endif #ifdef EBCDIC -#ifndef isALNUMC -# define isALNUMC(c) isalnum(c) -#endif +/* This is the first version where these macros are fully correct. Relying on + * the C library functions, as earlier releases did, causes problems with + * locales */ +# if (PERL_BCDVERSION < 0x5022000) +# undef isALNUM +# undef isALNUM_A +# undef isALNUMC +# undef isALNUMC_A +# undef isALPHA +# undef isALPHA_A +# undef isALPHANUMERIC +# undef isALPHANUMERIC_A +# undef isASCII +# undef isASCII_A +# undef isBLANK +# undef isBLANK_A +# undef isCNTRL +# undef isCNTRL_A +# undef isDIGIT +# undef isDIGIT_A +# undef isGRAPH +# undef isGRAPH_A +# undef isIDCONT +# undef isIDCONT_A +# undef isIDFIRST +# undef isIDFIRST_A +# undef isLOWER +# undef isLOWER_A +# undef isOCTAL +# undef isOCTAL_A +# undef isPRINT +# undef isPRINT_A +# undef isPSXSPC +# undef isPSXSPC_A +# undef isPUNCT +# undef isPUNCT_A +# undef isSPACE +# undef isSPACE_A +# undef isUPPER +# undef isUPPER_A +# undef isWORDCHAR +# undef isWORDCHAR_A +# undef isXDIGIT +# undef isXDIGIT_A +# endif #ifndef isASCII -# define isASCII(c) isascii(c) +# define isASCII(c) (isCNTRL(c) || isPRINT(c)) #endif + /* The below is accurate for all EBCDIC code pages supported by + * all the versions of Perl overridden by this */ #ifndef isCNTRL -# define isCNTRL(c) iscntrl(c) -#endif - -#ifndef isGRAPH -# define isGRAPH(c) isgraph(c) -#endif - -#ifndef isPRINT -# define isPRINT(c) isprint(c) -#endif - -#ifndef isPUNCT -# define isPUNCT(c) ispunct(c) -#endif +# define isCNTRL(c) ( (c) == '\0' || (c) == '\a' || (c) == '\b' \ + || (c) == '\f' || (c) == '\n' || (c) == '\r' \ + || (c) == '\t' || (c) == '\v' \ + || ((c) <= 3 && (c) >= 1) /* SOH, STX, ETX */ \ + || (c) == 7 /* U+7F DEL */ \ + || ((c) <= 0x13 && (c) >= 0x0E) /* SO, SI */ \ + /* DLE, DC[1-3] */ \ + || (c) == 0x18 /* U+18 CAN */ \ + || (c) == 0x19 /* U+19 EOM */ \ + || ((c) <= 0x1F && (c) >= 0x1C) /* [FGRU]S */ \ + || (c) == 0x26 /* U+17 ETB */ \ + || (c) == 0x27 /* U+1B ESC */ \ + || (c) == 0x2D /* U+05 ENQ */ \ + || (c) == 0x2E /* U+06 ACK */ \ + || (c) == 0x32 /* U+16 SYN */ \ + || (c) == 0x37 /* U+04 EOT */ \ + || (c) == 0x3C /* U+14 DC4 */ \ + || (c) == 0x3D /* U+15 NAK */ \ + || (c) == 0x3F /* U+1A SUB */ \ + ) +#endif + +/* The ordering of the tests in this and isUPPER are to exclude most characters + * early */ +#ifndef isLOWER +# define isLOWER(c) ( (c) >= 'a' && (c) <= 'z' \ + && ( (c) <= 'i' \ + || ((c) >= 'j' && (c) <= 'r') \ + || (c) >= 's')) +#endif + +#ifndef isUPPER +# define isUPPER(c) ( (c) >= 'A' && (c) <= 'Z' \ + && ( (c) <= 'I' \ + || ((c) >= 'J' && (c) <= 'R') \ + || (c) >= 'S')) +#endif + +#else /* Above is EBCDIC; below is ASCII */ + +# if (PERL_BCDVERSION < 0x5004000) +/* The implementation of these in older perl versions can give wrong results if + * the C program locale is set to other than the C locale */ +# undef isALNUM +# undef isALNUM_A +# undef isALPHA +# undef isALPHA_A +# undef isDIGIT +# undef isDIGIT_A +# undef isIDFIRST +# undef isIDFIRST_A +# undef isLOWER +# undef isLOWER_A +# undef isUPPER +# undef isUPPER_A +# endif -#ifndef isXDIGIT -# define isXDIGIT(c) isxdigit(c) -#endif +# if (PERL_BCDVERSION < 0x5008000) +/* Hint: isCNTRL + * Earlier perls omitted DEL */ +# undef isCNTRL +# endif -#else # if (PERL_BCDVERSION < 0x5010000) /* Hint: isPRINT * The implementation in older perl versions includes all of the @@ -4464,21 +4479,24 @@ * Devel::PPPort always overrides a present buggy version. */ # undef isPRINT +# undef isPRINT_A # endif -#ifdef HAS_QUAD -# ifdef U64TYPE -# define WIDEST_UTYPE U64TYPE -# else -# define WIDEST_UTYPE Quad_t +# if (PERL_BCDVERSION < 0x5014000) +/* Hint: isASCII + * The implementation in older perl versions always returned true if the + * parameter was a signed char + */ +# undef isASCII +# undef isASCII_A # endif -#else -# define WIDEST_UTYPE U32 -#endif -#ifndef isALNUMC -# define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) -#endif +# if (PERL_BCDVERSION < 0x5020000) +/* Hint: isSPACE + * The implementation in older perl versions didn't include \v */ +# undef isSPACE +# undef isSPACE_A +# endif #ifndef isASCII # define isASCII(c) ((WIDEST_UTYPE) (c) <= 127) #endif @@ -4487,22 +4505,169 @@ # define isCNTRL(c) ((WIDEST_UTYPE) (c) < ' ' || (c) == 127) #endif +#ifndef isLOWER +# define isLOWER(c) ((c) >= 'a' && (c) <= 'z') +#endif + +#ifndef isUPPER +# define isUPPER(c) ((c) <= 'Z' && (c) >= 'A') +#endif + +#endif /* Below are definitions common to EBCDIC and ASCII */ +#ifndef isALNUM +# define isALNUM(c) isWORDCHAR(c) +#endif + +#ifndef isALNUMC +# define isALNUMC(c) isALPHANUMERIC(c) +#endif + +#ifndef isALPHA +# define isALPHA(c) (isUPPER(c) || isLOWER(c)) +#endif + +#ifndef isALPHANUMERIC +# define isALPHANUMERIC(c) (isALPHA(c) || isDIGIT(c)) +#endif + +#ifndef isBLANK +# define isBLANK(c) ((c) == ' ' || (c) == '\t') +#endif + +#ifndef isDIGIT +# define isDIGIT(c) ((c) <= '9' && (c) >= '0') +#endif + #ifndef isGRAPH -# define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) +# define isGRAPH(c) (isWORDCHAR(c) || isPUNCT(c)) +#endif + +#ifndef isIDCONT +# define isIDCONT(c) isWORDCHAR(c) +#endif + +#ifndef isIDFIRST +# define isIDFIRST(c) (isALPHA(c) || (c) == '_') +#endif + +#ifndef isOCTAL +# define isOCTAL(c) (((WIDEST_UTYPE)((c)) & ~7) == '0') #endif #ifndef isPRINT -# define isPRINT(c) (((c) >= 32 && (c) < 127)) +# define isPRINT(c) (isGRAPH(c) || (c) == ' ') +#endif + +#ifndef isPSXSPC +# define isPSXSPC(c) isSPACE(c) #endif #ifndef isPUNCT -# define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) +# define isPUNCT(c) ( (c) == '-' || (c) == '!' || (c) == '"' \ + || (c) == '#' || (c) == '$' || (c) == '%' \ + || (c) == '&' || (c) == '\'' || (c) == '(' \ + || (c) == ')' || (c) == '*' || (c) == '+' \ + || (c) == ',' || (c) == '.' || (c) == '/' \ + || (c) == ':' || (c) == ';' || (c) == '<' \ + || (c) == '=' || (c) == '>' || (c) == '?' \ + || (c) == '@' || (c) == '[' || (c) == '\\' \ + || (c) == ']' || (c) == '^' || (c) == '_' \ + || (c) == '`' || (c) == '{' || (c) == '|' \ + || (c) == '}' || (c) == '~') +#endif + +#ifndef isSPACE +# define isSPACE(c) ( isBLANK(c) || (c) == '\n' || (c) == '\r' \ + || (c) == '\v' || (c) == '\f') +#endif + +#ifndef isWORDCHAR +# define isWORDCHAR(c) (isALPHANUMERIC(c) || (c) == '_') #endif #ifndef isXDIGIT -# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +# define isXDIGIT(c) ( isDIGIT(c) \ + || ((c) >= 'a' && (c) <= 'f') \ + || ((c) >= 'A' && (c) <= 'F')) +#endif +#ifndef isALNUM_A +# define isALNUM_A isALNUM +#endif + +#ifndef isALNUMC_A +# define isALNUMC_A isALNUMC +#endif + +#ifndef isALPHA_A +# define isALPHA_A isALPHA +#endif + +#ifndef isALPHANUMERIC_A +# define isALPHANUMERIC_A isALPHANUMERIC +#endif + +#ifndef isASCII_A +# define isASCII_A isASCII +#endif + +#ifndef isBLANK_A +# define isBLANK_A isBLANK +#endif + +#ifndef isCNTRL_A +# define isCNTRL_A isCNTRL +#endif + +#ifndef isDIGIT_A +# define isDIGIT_A isDIGIT +#endif + +#ifndef isGRAPH_A +# define isGRAPH_A isGRAPH +#endif + +#ifndef isIDCONT_A +# define isIDCONT_A isIDCONT +#endif + +#ifndef isIDFIRST_A +# define isIDFIRST_A isIDFIRST +#endif + +#ifndef isLOWER_A +# define isLOWER_A isLOWER +#endif + +#ifndef isOCTAL_A +# define isOCTAL_A isOCTAL +#endif + +#ifndef isPRINT_A +# define isPRINT_A isPRINT +#endif + +#ifndef isPSXSPC_A +# define isPSXSPC_A isPSXSPC +#endif + +#ifndef isPUNCT_A +# define isPUNCT_A isPUNCT +#endif + +#ifndef isSPACE_A +# define isSPACE_A isSPACE +#endif + +#ifndef isUPPER_A +# define isUPPER_A isUPPER +#endif + +#ifndef isWORDCHAR_A +# define isWORDCHAR_A isWORDCHAR #endif +#ifndef isXDIGIT_A +# define isXDIGIT_A isXDIGIT #endif /* Until we figure out how to support this in older perls... */ @@ -4514,1796 +4679,2509 @@ #endif #endif +#ifndef C_ARRAY_LENGTH +# define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0])) +#endif -#ifndef PERL_SIGNALS_UNSAFE_FLAG - -#define PERL_SIGNALS_UNSAFE_FLAG 0x0001 +#ifndef C_ARRAY_END +# define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a)) +#endif +#ifndef LIKELY +# define LIKELY(x) (x) +#endif -#if (PERL_BCDVERSION < 0x5008000) -# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG -#else -# define D_PPP_PERL_SIGNALS_INIT 0 +#ifndef UNLIKELY +# define UNLIKELY(x) (x) +#endif +#ifndef UNICODE_REPLACEMENT +# define UNICODE_REPLACEMENT 0xFFFD #endif -#if defined(NEED_PL_signals) -static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; -#elif defined(NEED_PL_signals_GLOBAL) -U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; +#ifndef MUTABLE_PTR +#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) +# define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) #else -extern U32 DPPP_(my_PL_signals); +# define MUTABLE_PTR(p) ((void *) (p)) #endif -#define PL_signals DPPP_(my_PL_signals) - +#endif +#ifndef MUTABLE_SV +# define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) +#endif +#ifndef WARN_ALL +# define WARN_ALL 0 #endif -/* Hint: PL_ppaddr - * Calling an op via PL_ppaddr requires passing a context argument - * for threaded builds. Since the context argument is different for - * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will - * automatically be defined as the correct argument. - */ +#ifndef WARN_CLOSURE +# define WARN_CLOSURE 1 +#endif -#if (PERL_BCDVERSION <= 0x5005005) -/* Replace: 1 */ -# define PL_ppaddr ppaddr -# define PL_no_modify no_modify -/* Replace: 0 */ +#ifndef WARN_DEPRECATED +# define WARN_DEPRECATED 2 #endif -#if (PERL_BCDVERSION <= 0x5004005) -/* Replace: 1 */ -# define PL_DBsignal DBsignal -# define PL_DBsingle DBsingle -# define PL_DBsub DBsub -# define PL_DBtrace DBtrace -# define PL_Sv Sv -# define PL_bufend bufend -# define PL_bufptr bufptr -# define PL_compiling compiling -# define PL_copline copline -# define PL_curcop curcop -# define PL_curstash curstash -# define PL_debstash debstash -# define PL_defgv defgv -# define PL_diehook diehook -# define PL_dirty dirty -# define PL_dowarn dowarn -# define PL_errgv errgv -# define PL_error_count error_count -# define PL_expect expect -# define PL_hexdigit hexdigit -# define PL_hints hints -# define PL_in_my in_my -# define PL_laststatval laststatval -# define PL_lex_state lex_state -# define PL_lex_stuff lex_stuff -# define PL_linestr linestr -# define PL_na na -# define PL_perl_destruct_level perl_destruct_level -# define PL_perldb perldb -# define PL_rsfp_filters rsfp_filters -# define PL_rsfp rsfp -# define PL_stack_base stack_base -# define PL_stack_sp stack_sp -# define PL_statcache statcache -# define PL_stdingv stdingv -# define PL_sv_arenaroot sv_arenaroot -# define PL_sv_no sv_no -# define PL_sv_undef sv_undef -# define PL_sv_yes sv_yes -# define PL_tainted tainted -# define PL_tainting tainting -# define PL_tokenbuf tokenbuf -/* Replace: 0 */ +#ifndef WARN_EXITING +# define WARN_EXITING 3 #endif -/* Warning: PL_parser - * For perl versions earlier than 5.9.5, this is an always - * non-NULL dummy. Also, it cannot be dereferenced. Don't - * use it if you can avoid is and unless you absolutely know - * what you're doing. - * If you always check that PL_parser is non-NULL, you can - * define DPPP_PL_parser_NO_DUMMY to avoid the creation of - * a dummy parser structure. - */ +#ifndef WARN_GLOB +# define WARN_GLOB 4 +#endif -#if (PERL_BCDVERSION >= 0x5009005) -# ifdef DPPP_PL_parser_NO_DUMMY -# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ - (croak("panic: PL_parser == NULL in %s:%d", \ - __FILE__, __LINE__), (yy_parser *) NULL))->var) -# else -# ifdef DPPP_PL_parser_NO_DUMMY_WARNING -# define D_PPP_parser_dummy_warning(var) -# else -# define D_PPP_parser_dummy_warning(var) \ - warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), -# endif -# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ - (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) -#if defined(NEED_PL_parser) -static yy_parser DPPP_(dummy_PL_parser); -#elif defined(NEED_PL_parser_GLOBAL) -yy_parser DPPP_(dummy_PL_parser); -#else -extern yy_parser DPPP_(dummy_PL_parser); +#ifndef WARN_IO +# define WARN_IO 5 #endif -# endif +#ifndef WARN_CLOSED +# define WARN_CLOSED 6 +#endif -/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ -/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf - * Do not use this variable unless you know exactly what you're - * doint. It is internal to the perl parser and may change or even - * be removed in the future. As of perl 5.9.5, you have to check - * for (PL_parser != NULL) for this variable to have any effect. - * An always non-NULL PL_parser dummy is provided for earlier - * perl versions. - * If PL_parser is NULL when you try to access this variable, a - * dummy is being accessed instead and a warning is issued unless - * you define DPPP_PL_parser_NO_DUMMY_WARNING. - * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access - * this variable will croak with a panic message. - */ +#ifndef WARN_EXEC +# define WARN_EXEC 7 +#endif -# define PL_expect D_PPP_my_PL_parser_var(expect) -# define PL_copline D_PPP_my_PL_parser_var(copline) -# define PL_rsfp D_PPP_my_PL_parser_var(rsfp) -# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) -# define PL_linestr D_PPP_my_PL_parser_var(linestr) -# define PL_bufptr D_PPP_my_PL_parser_var(bufptr) -# define PL_bufend D_PPP_my_PL_parser_var(bufend) -# define PL_lex_state D_PPP_my_PL_parser_var(lex_state) -# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) -# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) -# define PL_in_my D_PPP_my_PL_parser_var(in_my) -# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) -# define PL_error_count D_PPP_my_PL_parser_var(error_count) +#ifndef WARN_LAYER +# define WARN_LAYER 8 +#endif +#ifndef WARN_NEWLINE +# define WARN_NEWLINE 9 +#endif -#else +#ifndef WARN_PIPE +# define WARN_PIPE 10 +#endif -/* ensure that PL_parser != NULL and cannot be dereferenced */ -# define PL_parser ((void *) 1) +#ifndef WARN_UNOPENED +# define WARN_UNOPENED 11 +#endif +#ifndef WARN_MISC +# define WARN_MISC 12 #endif -#ifndef mPUSHs -# define mPUSHs(s) PUSHs(sv_2mortal(s)) + +#ifndef WARN_NUMERIC +# define WARN_NUMERIC 13 #endif -#ifndef PUSHmortal -# define PUSHmortal PUSHs(sv_newmortal()) +#ifndef WARN_ONCE +# define WARN_ONCE 14 #endif -#ifndef mPUSHp -# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) +#ifndef WARN_OVERFLOW +# define WARN_OVERFLOW 15 #endif -#ifndef mPUSHn -# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) +#ifndef WARN_PACK +# define WARN_PACK 16 #endif -#ifndef mPUSHi -# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) +#ifndef WARN_PORTABLE +# define WARN_PORTABLE 17 #endif -#ifndef mPUSHu -# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) +#ifndef WARN_RECURSION +# define WARN_RECURSION 18 #endif -#ifndef mXPUSHs -# define mXPUSHs(s) XPUSHs(sv_2mortal(s)) + +#ifndef WARN_REDEFINE +# define WARN_REDEFINE 19 #endif -#ifndef XPUSHmortal -# define XPUSHmortal XPUSHs(sv_newmortal()) +#ifndef WARN_REGEXP +# define WARN_REGEXP 20 #endif -#ifndef mXPUSHp -# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END +#ifndef WARN_SEVERE +# define WARN_SEVERE 21 #endif -#ifndef mXPUSHn -# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END +#ifndef WARN_DEBUGGING +# define WARN_DEBUGGING 22 #endif -#ifndef mXPUSHi -# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END +#ifndef WARN_INPLACE +# define WARN_INPLACE 23 #endif -#ifndef mXPUSHu -# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END +#ifndef WARN_INTERNAL +# define WARN_INTERNAL 24 #endif -/* Replace: 1 */ -#ifndef call_sv -# define call_sv perl_call_sv +#ifndef WARN_MALLOC +# define WARN_MALLOC 25 #endif -#ifndef call_pv -# define call_pv perl_call_pv +#ifndef WARN_SIGNAL +# define WARN_SIGNAL 26 #endif -#ifndef call_argv -# define call_argv perl_call_argv +#ifndef WARN_SUBSTR +# define WARN_SUBSTR 27 #endif -#ifndef call_method -# define call_method perl_call_method +#ifndef WARN_SYNTAX +# define WARN_SYNTAX 28 #endif -#ifndef eval_sv -# define eval_sv perl_eval_sv + +#ifndef WARN_AMBIGUOUS +# define WARN_AMBIGUOUS 29 #endif -/* Replace: 0 */ -#ifndef PERL_LOADMOD_DENY -# define PERL_LOADMOD_DENY 0x1 +#ifndef WARN_BAREWORD +# define WARN_BAREWORD 30 #endif -#ifndef PERL_LOADMOD_NOIMPORT -# define PERL_LOADMOD_NOIMPORT 0x2 +#ifndef WARN_DIGIT +# define WARN_DIGIT 31 #endif -#ifndef PERL_LOADMOD_IMPORT_OPS -# define PERL_LOADMOD_IMPORT_OPS 0x4 +#ifndef WARN_PARENTHESIS +# define WARN_PARENTHESIS 32 #endif -#ifndef G_METHOD -# define G_METHOD 64 -# ifdef call_sv -# undef call_sv -# endif -# if (PERL_BCDVERSION < 0x5006000) -# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ - (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) -# else -# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ - (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) -# endif +#ifndef WARN_PRECEDENCE +# define WARN_PRECEDENCE 33 #endif -/* Replace perl_eval_pv with eval_pv */ +#ifndef WARN_PRINTF +# define WARN_PRINTF 34 +#endif -#ifndef eval_pv -#if defined(NEED_eval_pv) -static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); -static -#else -extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); +#ifndef WARN_PROTOTYPE +# define WARN_PROTOTYPE 35 #endif -#ifdef eval_pv -# undef eval_pv +#ifndef WARN_QW +# define WARN_QW 36 #endif -#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) -#define Perl_eval_pv DPPP_(my_eval_pv) -#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) +#ifndef WARN_RESERVED +# define WARN_RESERVED 37 +#endif -SV* -DPPP_(my_eval_pv)(char *p, I32 croak_on_error) -{ - dSP; - SV* sv = newSVpv(p, 0); +#ifndef WARN_SEMICOLON +# define WARN_SEMICOLON 38 +#endif - PUSHMARK(sp); - eval_sv(sv, G_SCALAR); - SvREFCNT_dec(sv); +#ifndef WARN_TAINT +# define WARN_TAINT 39 +#endif - SPAGAIN; - sv = POPs; - PUTBACK; +#ifndef WARN_THREADS +# define WARN_THREADS 40 +#endif - if (croak_on_error && SvTRUE(GvSV(errgv))) - croak(SvPVx(GvSV(errgv), na)); +#ifndef WARN_UNINITIALIZED +# define WARN_UNINITIALIZED 41 +#endif - return sv; -} +#ifndef WARN_UNPACK +# define WARN_UNPACK 42 +#endif +#ifndef WARN_UNTIE +# define WARN_UNTIE 43 #endif + +#ifndef WARN_UTF8 +# define WARN_UTF8 44 #endif -#ifndef vload_module -#if defined(NEED_vload_module) -static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); +#ifndef WARN_VOID +# define WARN_VOID 45 +#endif + +#ifndef WARN_ASSERTIONS +# define WARN_ASSERTIONS 46 +#endif +#ifndef packWARN +# define packWARN(a) (a) +#endif + +#ifndef ckWARN +# ifdef G_WARN_ON +# define ckWARN(a) (PL_dowarn & G_WARN_ON) +# else +# define ckWARN(a) PL_dowarn +# endif +#endif + +#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner) +#if defined(NEED_warner) +static void DPPP_(my_warner)(U32 err, const char *pat, ...); static #else -extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); +extern void DPPP_(my_warner)(U32 err, const char *pat, ...); #endif -#ifdef vload_module -# undef vload_module -#endif -#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) -#define Perl_vload_module DPPP_(my_vload_module) +#if defined(NEED_warner) || defined(NEED_warner_GLOBAL) + +#define Perl_warner DPPP_(my_warner) -#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) void -DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) +DPPP_(my_warner)(U32 err, const char *pat, ...) { - dTHR; - dVAR; - OP *veop, *imop; + SV *sv; + va_list args; - OP * const modname = newSVOP(OP_CONST, 0, name); - /* 5.005 has a somewhat hacky force_normal that doesn't croak on - SvREADONLY() if PL_compling is true. Current perls take care in - ck_require() to correctly turn off SvREADONLY before calling - force_normal_flags(). This seems a better fix than fudging PL_compling - */ - SvREADONLY_off(((SVOP*)modname)->op_sv); - modname->op_private |= OPpCONST_BARE; - if (ver) { - veop = newSVOP(OP_CONST, 0, ver); - } - else - veop = NULL; - if (flags & PERL_LOADMOD_NOIMPORT) { - imop = sawparens(newNULLLIST()); - } - else if (flags & PERL_LOADMOD_IMPORT_OPS) { - imop = va_arg(*args, OP*); - } - else { - SV *sv; - imop = NULL; - sv = va_arg(*args, SV*); - while (sv) { - imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); - sv = va_arg(*args, SV*); - } - } - { - const line_t ocopline = PL_copline; - COP * const ocurcop = PL_curcop; - const int oexpect = PL_expect; + PERL_UNUSED_ARG(err); -#if (PERL_BCDVERSION >= 0x5004000) - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), - veop, modname, imop); -#elif (PERL_BCDVERSION > 0x5003000) - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), - veop, modname, imop); -#else - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), - modname, imop); -#endif - PL_expect = oexpect; - PL_copline = ocopline; - PL_curcop = ocurcop; - } + va_start(args, pat); + sv = vnewSVpvf(pat, &args); + va_end(args); + sv_2mortal(sv); + warn("%s", SvPV_nolen(sv)); } +#define warner Perl_warner + +#define Perl_warner_nocontext Perl_warner + #endif #endif -#ifndef load_module -#if defined(NEED_load_module) -static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); -static -#else -extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); +#define _ppport_MIN(a,b) (((a) <= (b)) ? (a) : (b)) +#ifndef sv_setuv +# define sv_setuv(sv, uv) \ + STMT_START { \ + UV TeMpUv = uv; \ + if (TeMpUv <= IV_MAX) \ + sv_setiv(sv, TeMpUv); \ + else \ + sv_setnv(sv, (double)TeMpUv); \ + } STMT_END #endif - -#ifdef load_module -# undef load_module +#ifndef newSVuv +# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) +#endif +#ifndef sv_2uv +# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) #endif -#define load_module DPPP_(my_load_module) -#define Perl_load_module DPPP_(my_load_module) -#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) +#ifndef SvUVX +# define SvUVX(sv) ((UV)SvIVX(sv)) +#endif -void -DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) -{ - va_list args; - va_start(args, ver); - vload_module(flags, name, ver, &args); - va_end(args); -} +#ifndef SvUVXx +# define SvUVXx(sv) SvUVX(sv) +#endif +#ifndef SvUV +# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) #endif + +#ifndef SvUVx +# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) #endif -#ifndef newRV_inc -# define newRV_inc(sv) newRV(sv) /* Replace */ + +/* Hint: sv_uv + * Always use the SvUVx() macro instead of sv_uv(). + */ +#ifndef sv_uv +# define sv_uv(sv) SvUVx(sv) #endif -#ifndef newRV_noinc -#if defined(NEED_newRV_noinc) -static SV * DPPP_(my_newRV_noinc)(SV *sv); -static -#else -extern SV * DPPP_(my_newRV_noinc)(SV *sv); +#if !defined(SvUOK) && defined(SvIOK_UV) +# define SvUOK(sv) SvIOK_UV(sv) +#endif +#ifndef XST_mUV +# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) #endif -#ifdef newRV_noinc -# undef newRV_noinc +#ifndef XSRETURN_UV +# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END +#endif +#ifndef PUSHu +# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END #endif -#define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) -#define Perl_newRV_noinc DPPP_(my_newRV_noinc) -#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) -SV * -DPPP_(my_newRV_noinc)(SV *sv) -{ - SV *rv = (SV *)newRV(sv); - SvREFCNT_dec(sv); - return rv; -} +#ifndef XPUSHu +# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END #endif + +#if defined UTF8SKIP + +/* Don't use official version because it uses MIN, which may not be available */ +#undef UTF8_SAFE_SKIP +#ifndef UTF8_SAFE_SKIP +# define UTF8_SAFE_SKIP(s, e) ( \ + ((((e) - (s)) <= 0) \ + ? 0 \ + : _ppport_MIN(((e) - (s)), UTF8SKIP(s)))) #endif -/* Hint: newCONSTSUB - * Returns a CV* as of perl-5.7.1. This return value is not supported - * by Devel::PPPort. - */ +#endif -/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ -#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005) -#if defined(NEED_newCONSTSUB) -static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +#if !defined(my_strnlen) +#if defined(NEED_my_strnlen) +static STRLEN DPPP_(my_my_strnlen)(const char *str, Size_t maxlen); static #else -extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +extern STRLEN DPPP_(my_my_strnlen)(const char *str, Size_t maxlen); #endif -#ifdef newCONSTSUB -# undef newCONSTSUB -#endif -#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) -#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) +#if defined(NEED_my_strnlen) || defined(NEED_my_strnlen_GLOBAL) -#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) +#define my_strnlen DPPP_(my_my_strnlen) +#define Perl_my_strnlen DPPP_(my_my_strnlen) -/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ -/* (There's no PL_parser in perl < 5.005, so this is completely safe) */ -#define D_PPP_PL_copline PL_copline -void -DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) +STRLEN +DPPP_(my_my_strnlen)(const char *str, Size_t maxlen) { - U32 oldhints = PL_hints; - HV *old_cop_stash = PL_curcop->cop_stash; - HV *old_curstash = PL_curstash; - line_t oldline = PL_curcop->cop_line; - PL_curcop->cop_line = D_PPP_PL_copline; + const char *p = str; - PL_hints &= ~HINT_BLOCK_SCOPE; - if (stash) - PL_curstash = PL_curcop->cop_stash = stash; + while(maxlen-- && *p) + p++; - newSUB( + return p - str; +} -#if (PERL_BCDVERSION < 0x5003022) - start_subparse(), -#elif (PERL_BCDVERSION == 0x5003022) - start_subparse(0), -#else /* 5.003_23 onwards */ - start_subparse(FALSE, 0), +#endif #endif - newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), - newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ - newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) - ); +#if (PERL_BCDVERSION < 0x5030000) + /* Versions prior to this accepted things that are now considered + * malformations, and didn't return -1 on error with warnings enabled + * */ +# undef utf8_to_uvchr_buf +#endif - PL_hints = oldhints; - PL_curcop->cop_stash = old_cop_stash; - PL_curstash = old_curstash; - PL_curcop->cop_line = oldline; -} -#endif +/* This implementation brings modern, generally more restricted standards to + * utf8_to_uvchr_buf. Some of these are security related, and clearly must + * be done. But its arguable that the others need not, and hence should not. + * The reason they're here is that a module that intends to play with the + * latest perls shoud be able to work the same in all releases. An example is + * that perl no longer accepts any UV for a code point, but limits them to + * IV_MAX or below. This is for future internal use of the larger code points. + * If it turns out that some of these changes are breaking code that isn't + * intended to work with modern perls, the tighter restrictions could be + * relaxed. khw thinks this is unlikely, but has been wrong in the past. */ + +#ifndef utf8_to_uvchr_buf + /* Choose which underlying implementation to use. At least one must be + * present or the perl is too early to handle this function */ +# if defined(utf8n_to_uvchr) || defined(utf8_to_uv) +# if defined(utf8n_to_uvchr) /* This is the preferred implementation */ +# define _ppport_utf8_to_uvchr_buf_callee utf8n_to_uvchr +# else +# define _ppport_utf8_to_uvchr_buf_callee utf8_to_uv +# endif + +# endif + +#ifdef _ppport_utf8_to_uvchr_buf_callee +# if defined(NEED_utf8_to_uvchr_buf) +static UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen); +static +#else +extern UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen); #endif -/* - * Boilerplate macros for initializing and accessing interpreter-local - * data from C. All statics in extensions should be reworked to use - * this, if you want to make the extension thread-safe. See ext/re/re.xs - * for an example of the use of these macros. - * - * Code that uses these macros is responsible for the following: - * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" - * 2. Declare a typedef named my_cxt_t that is a structure that contains - * all the data that needs to be interpreter-local. - * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. - * 4. Use the MY_CXT_INIT macro such that it is called exactly once - * (typically put in the BOOT: section). - * 5. Use the members of the my_cxt_t structure everywhere as - * MY_CXT.member. - * 6. Use the dMY_CXT macro (a declaration) in all the functions that - * access MY_CXT. - */ +#if defined(NEED_utf8_to_uvchr_buf) || defined(NEED_utf8_to_uvchr_buf_GLOBAL) -#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ - defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) +#ifdef utf8_to_uvchr_buf +# undef utf8_to_uvchr_buf +#endif +#define utf8_to_uvchr_buf(a,b,c) DPPP_(my_utf8_to_uvchr_buf)(aTHX_ a,b,c) +#define Perl_utf8_to_uvchr_buf DPPP_(my_utf8_to_uvchr_buf) -#ifndef START_MY_CXT -/* This must appear in all extensions that define a my_cxt_t structure, - * right after the definition (i.e. at file scope). The non-threads - * case below uses it to declare the data as static. */ -#define START_MY_CXT +UV +DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen) +{ + UV ret; + STRLEN curlen; + bool overflows = 0; + const U8 *cur_s = s; + const bool do_warnings = ckWARN_d(WARN_UTF8); -#if (PERL_BCDVERSION < 0x5004068) -/* Fetches the SV that keeps the per-interpreter data. */ -#define dMY_CXT_SV \ - SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) -#else /* >= perl5.004_68 */ -#define dMY_CXT_SV \ - SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ - sizeof(MY_CXT_KEY)-1, TRUE) -#endif /* < perl5.004_68 */ + if (send > s) { + curlen = send - s; + } + else { + assert(0); /* Modern perls die under this circumstance */ + curlen = 0; + if (! do_warnings) { /* Handle empty here if no warnings needed */ + if (retlen) *retlen = 0; + return UNICODE_REPLACEMENT; + } + } -/* This declaration should be used within all functions that use the - * interpreter-local data. */ -#define dMY_CXT \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) + /* The modern version allows anything that evaluates to a legal UV, but not + * overlongs nor an empty input */ + ret = _ppport_utf8_to_uvchr_buf_callee( + s, curlen, retlen, (UTF8_ALLOW_ANYUV + & ~(UTF8_ALLOW_LONG|UTF8_ALLOW_EMPTY))); + + /* But actually, modern versions restrict the UV to being no more than what + * an IV can hold */ + if (ret > PERL_INT_MAX) { + overflows = 1; + } + +# if (PERL_BCDVERSION < 0x5026000) +# ifndef EBCDIC + + /* There are bugs in versions earlier than this on non-EBCDIC platforms + * in which it did not detect all instances of overflow, which could be + * a security hole. Also, earlier versions did not allow the overflow + * malformation under any circumstances, and modern ones do. So we + * need to check here. */ + + else if (curlen > 0 && *s >= 0xFE) { + + /* If the main routine detected overflow, great; it returned 0. But if the + * input's first byte indicates it could overflow, we need to verify. + * First, on a 32-bit machine the first byte being at least \xFE + * automatically is overflow */ + if (sizeof(ret) < 8) { + overflows = 1; + } + else { + const U8 highest[] = /* 2*63-1 */ + "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"; + const U8 *cur_h = highest; -/* Creates and zeroes the per-interpreter data. - * (We allocate my_cxtp in a Perl SV so that it will be released when - * the interpreter goes away.) */ -#define MY_CXT_INIT \ - dMY_CXT_SV; \ - /* newSV() allocates one more than needed */ \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Zero(my_cxtp, 1, my_cxt_t); \ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) + for (cur_s = s; cur_s < send; cur_s++, cur_h++) { + if (UNLIKELY(*cur_s == *cur_h)) { + continue; + } -/* This macro must be used to access members of the my_cxt_t structure. - * e.g. MYCXT.some_data */ -#define MY_CXT (*my_cxtp) + /* If this byte is larger than the corresponding highest UTF-8 + * byte, the sequence overflows; otherwise the byte is less than + * (as we handled the equality case above), and so the sequence + * doesn't overflow */ + overflows = *cur_s > *cur_h; + break; -/* Judicious use of these macros can reduce the number of times dMY_CXT - * is used. Use is similar to pTHX, aTHX etc. */ -#define pMY_CXT my_cxt_t *my_cxtp -#define pMY_CXT_ pMY_CXT, -#define _pMY_CXT ,pMY_CXT -#define aMY_CXT my_cxtp -#define aMY_CXT_ aMY_CXT, -#define _aMY_CXT ,aMY_CXT + } -#endif /* START_MY_CXT */ + /* Here, either we set the bool and broke out of the loop, or got + * to the end and all bytes are the same which indicates it doesn't + * overflow. */ + } + } -#ifndef MY_CXT_CLONE -/* Clones the per-interpreter data. */ -#define MY_CXT_CLONE \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) -#endif +# endif +# endif /* < 5.26 */ -#else /* single interpreter */ + if (UNLIKELY(overflows)) { + if (! do_warnings) { + if (retlen) { + *retlen = _ppport_MIN(*retlen, UTF8SKIP(s)); + *retlen = _ppport_MIN(*retlen, curlen); + } + return UNICODE_REPLACEMENT; + } + else { -#ifndef START_MY_CXT + /* On versions that correctly detect overflow, but forbid it + * always, 0 will be returned, but also a warning will have been + * raised. Don't repeat it */ + if (ret != 0) { + /* We use the error message in use from 5.8-5.14 */ + Perl_warner(aTHX_ packWARN(WARN_UTF8), + "Malformed UTF-8 character (overflow at 0x%" UVxf + ", byte 0x%02x, after start byte 0x%02x)", + ret, *cur_s, *s); + } + if (retlen) { + *retlen = (STRLEN) -1; + } + return 0; + } + } -#define START_MY_CXT static my_cxt_t my_cxt; -#define dMY_CXT_SV dNOOP -#define dMY_CXT dNOOP -#define MY_CXT_INIT NOOP -#define MY_CXT my_cxt + /* If failed and warnings are off, to emulate the behavior of the real + * utf8_to_uvchr(), try again, allowing anything. (Note a return of 0 is + * ok if the input was '\0') */ + if (UNLIKELY(ret == 0 && (curlen == 0 || *s != '\0'))) { + + /* If curlen is 0, we already handled the case where warnings are + * disabled, so this 'if' will be true, and we won't look at the + * contents of 's' */ + if (do_warnings) { + *retlen = (STRLEN) -1; + } + else { + ret = _ppport_utf8_to_uvchr_buf_callee( + s, curlen, retlen, UTF8_ALLOW_ANY); + /* Override with the REPLACEMENT character, as that is what the + * modern version of this function returns */ + ret = UNICODE_REPLACEMENT; + +# if (PERL_BCDVERSION < 0x5016000) + + /* Versions earlier than this don't necessarily return the proper + * length. It should not extend past the end of string, nor past + * what the first byte indicates the length is, nor past the + * continuation characters */ + if (retlen && *retlen >= 0) { + *retlen = _ppport_MIN(*retlen, curlen); + *retlen = _ppport_MIN(*retlen, UTF8SKIP(s)); + unsigned int i = 1; + do { + if (s[i] < 0x80 || s[i] > 0xBF) { + *retlen = i; + break; + } + } while (++i < *retlen); + } -#define pMY_CXT void -#define pMY_CXT_ -#define _pMY_CXT -#define aMY_CXT -#define aMY_CXT_ -#define _aMY_CXT +# endif -#endif /* START_MY_CXT */ + } + } -#ifndef MY_CXT_CLONE -#define MY_CXT_CLONE NOOP + return ret; +} + +# endif +#endif #endif +#if defined(UTF8SKIP) && defined(utf8_to_uvchr_buf) +#undef utf8_to_uvchr /* Always redefine this unsafe function so that it refuses + to read past a NUL, making it much less likely to read + off the end of the buffer. A NUL indicates the start + of the next character anyway. If the input isn't + NUL-terminated, the function remains unsafe, as it + always has been. */ +#ifndef utf8_to_uvchr +# define utf8_to_uvchr(s, lp) \ + ((*(s) == '\0') \ + ? utf8_to_uvchr_buf(s,((s)+1), lp) /* Handle single NUL specially */ \ + : utf8_to_uvchr_buf(s, (s) + my_strnlen((char *) (s), UTF8SKIP(s)), (lp))) #endif -#ifndef IVdf -# if IVSIZE == LONGSIZE -# define IVdf "ld" -# define UVuf "lu" -# define UVof "lo" -# define UVxf "lx" -# define UVXf "lX" -# elif IVSIZE == INTSIZE -# define IVdf "d" -# define UVuf "u" -# define UVof "o" -# define UVxf "x" -# define UVXf "X" -# else -# error "cannot define IV/UV formats" -# endif #endif -#ifndef NVef -# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \ - defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000) - /* Not very likely, but let's try anyway. */ -# define NVef PERL_PRIeldbl -# define NVff PERL_PRIfldbl -# define NVgf PERL_PRIgldbl -# else -# define NVef "e" -# define NVff "f" -# define NVgf "g" -# endif +#ifdef HAS_MEMCMP +#ifndef memNE +# define memNE(s1,s2,l) (memcmp(s1,s2,l)) #endif -#ifndef SvREFCNT_inc -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (SvREFCNT(_sv))++; \ - _sv; \ - }) -# else -# define SvREFCNT_inc(sv) \ - ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) -# endif +#ifndef memEQ +# define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) #endif -#ifndef SvREFCNT_inc_simple -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_simple(sv) \ - ({ \ - if (sv) \ - (SvREFCNT(sv))++; \ - (SV *)(sv); \ - }) -# else -# define SvREFCNT_inc_simple(sv) \ - ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) -# endif +#else +#ifndef memNE +# define memNE(s1,s2,l) (bcmp(s1,s2,l)) #endif -#ifndef SvREFCNT_inc_NN -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_NN(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - SvREFCNT(_sv)++; \ - _sv; \ - }) -# else -# define SvREFCNT_inc_NN(sv) \ - (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) -# endif +#ifndef memEQ +# define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif -#ifndef SvREFCNT_inc_void -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_void(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (void)(SvREFCNT(_sv)++); \ - }) -# else -# define SvREFCNT_inc_void(sv) \ - (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) -# endif #endif -#ifndef SvREFCNT_inc_simple_void -# define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END +#ifndef memEQs +# define memEQs(s1, l, s2) \ + (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1))) #endif -#ifndef SvREFCNT_inc_simple_NN -# define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) +#ifndef memNEs +# define memNEs(s1, l, s2) !memEQs(s1, l, s2) #endif - -#ifndef SvREFCNT_inc_void_NN -# define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) +#ifndef MoveD +# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) #endif -#ifndef SvREFCNT_inc_simple_void_NN -# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) +#ifndef CopyD +# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) #endif -#ifndef newSV_type +#ifdef HAS_MEMSET +#ifndef ZeroD +# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) +#endif -#if defined(NEED_newSV_type) -static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); -static #else -extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); +#ifndef ZeroD +# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) #endif -#ifdef newSV_type -# undef newSV_type #endif -#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) -#define Perl_newSV_type DPPP_(my_newSV_type) - -#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) +#ifndef PoisonWith +# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) +#endif -SV* -DPPP_(my_newSV_type)(pTHX_ svtype const t) -{ - SV* const sv = newSV(0); - sv_upgrade(sv, t); - return sv; -} +#ifndef PoisonNew +# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) +#endif +#ifndef PoisonFree +# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) #endif +#ifndef Poison +# define Poison(d,n,t) PoisonFree(d,n,t) +#endif +#ifndef Newx +# define Newx(v,n,t) New(0,v,n,t) #endif -#if (PERL_BCDVERSION < 0x5006000) -# define D_PPP_CONSTPV_ARG(x) ((char *) (x)) -#else -# define D_PPP_CONSTPV_ARG(x) (x) +#ifndef Newxc +# define Newxc(v,n,t,c) Newc(0,v,n,t,c) #endif -#ifndef newSVpvn -# define newSVpvn(data,len) ((data) \ - ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ - : newSV(0)) + +#ifndef Newxz +# define Newxz(v,n,t) Newz(0,v,n,t) #endif -#ifndef newSVpvn_utf8 -# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) +#ifndef PERL_MAGIC_sv +# define PERL_MAGIC_sv '\0' #endif -#ifndef SVf_UTF8 -# define SVf_UTF8 0 + +#ifndef PERL_MAGIC_overload +# define PERL_MAGIC_overload 'A' #endif -#ifndef newSVpvn_flags +#ifndef PERL_MAGIC_overload_elem +# define PERL_MAGIC_overload_elem 'a' +#endif -#if defined(NEED_newSVpvn_flags) -static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); -static -#else -extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); +#ifndef PERL_MAGIC_overload_table +# define PERL_MAGIC_overload_table 'c' #endif -#ifdef newSVpvn_flags -# undef newSVpvn_flags +#ifndef PERL_MAGIC_bm +# define PERL_MAGIC_bm 'B' #endif -#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) -#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) -#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) +#ifndef PERL_MAGIC_regdata +# define PERL_MAGIC_regdata 'D' +#endif -SV * -DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) -{ - SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len); - SvFLAGS(sv) |= (flags & SVf_UTF8); - return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv; -} +#ifndef PERL_MAGIC_regdatum +# define PERL_MAGIC_regdatum 'd' +#endif +#ifndef PERL_MAGIC_env +# define PERL_MAGIC_env 'E' #endif +#ifndef PERL_MAGIC_envelem +# define PERL_MAGIC_envelem 'e' #endif -/* Backwards compatibility stuff... :-( */ -#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen) -# define NEED_sv_2pv_flags +#ifndef PERL_MAGIC_fm +# define PERL_MAGIC_fm 'f' #endif -#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL) -# define NEED_sv_2pv_flags_GLOBAL + +#ifndef PERL_MAGIC_regex_global +# define PERL_MAGIC_regex_global 'g' #endif -/* Hint: sv_2pv_nolen - * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen(). - */ -#ifndef sv_2pv_nolen -# define sv_2pv_nolen(sv) SvPV_nolen(sv) +#ifndef PERL_MAGIC_isa +# define PERL_MAGIC_isa 'I' #endif -#ifdef SvPVbyte +#ifndef PERL_MAGIC_isaelem +# define PERL_MAGIC_isaelem 'i' +#endif -/* Hint: SvPVbyte - * Does not work in perl-5.6.1, ppport.h implements a version - * borrowed from perl-5.7.3. - */ +#ifndef PERL_MAGIC_nkeys +# define PERL_MAGIC_nkeys 'k' +#endif -#if (PERL_BCDVERSION < 0x5007000) +#ifndef PERL_MAGIC_dbfile +# define PERL_MAGIC_dbfile 'L' +#endif -#if defined(NEED_sv_2pvbyte) -static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); -static -#else -extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); +#ifndef PERL_MAGIC_dbline +# define PERL_MAGIC_dbline 'l' #endif -#ifdef sv_2pvbyte -# undef sv_2pvbyte +#ifndef PERL_MAGIC_mutex +# define PERL_MAGIC_mutex 'm' #endif -#define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) -#define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) -#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) +#ifndef PERL_MAGIC_shared +# define PERL_MAGIC_shared 'N' +#endif -char * -DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) -{ - sv_utf8_downgrade(sv,0); - return SvPV(sv,*lp); -} +#ifndef PERL_MAGIC_shared_scalar +# define PERL_MAGIC_shared_scalar 'n' +#endif +#ifndef PERL_MAGIC_collxfrm +# define PERL_MAGIC_collxfrm 'o' #endif -/* Hint: sv_2pvbyte - * Use the SvPVbyte() macro instead of sv_2pvbyte(). - */ +#ifndef PERL_MAGIC_tied +# define PERL_MAGIC_tied 'P' +#endif -#undef SvPVbyte +#ifndef PERL_MAGIC_tiedelem +# define PERL_MAGIC_tiedelem 'p' +#endif -#define SvPVbyte(sv, lp) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) +#ifndef PERL_MAGIC_tiedscalar +# define PERL_MAGIC_tiedscalar 'q' +#endif +#ifndef PERL_MAGIC_qr +# define PERL_MAGIC_qr 'r' #endif -#else +#ifndef PERL_MAGIC_sig +# define PERL_MAGIC_sig 'S' +#endif -# define SvPVbyte SvPV -# define sv_2pvbyte sv_2pv +#ifndef PERL_MAGIC_sigelem +# define PERL_MAGIC_sigelem 's' +#endif +#ifndef PERL_MAGIC_taint +# define PERL_MAGIC_taint 't' #endif -#ifndef sv_2pvbyte_nolen -# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv) + +#ifndef PERL_MAGIC_uvar +# define PERL_MAGIC_uvar 'U' #endif -/* Hint: sv_pvn - * Always use the SvPV() macro instead of sv_pvn(). - */ +#ifndef PERL_MAGIC_uvar_elem +# define PERL_MAGIC_uvar_elem 'u' +#endif -/* Hint: sv_pvn_force - * Always use the SvPV_force() macro instead of sv_pvn_force(). - */ +#ifndef PERL_MAGIC_vstring +# define PERL_MAGIC_vstring 'V' +#endif -/* If these are undefined, they're not handled by the core anyway */ -#ifndef SV_IMMEDIATE_UNREF -# define SV_IMMEDIATE_UNREF 0 +#ifndef PERL_MAGIC_vec +# define PERL_MAGIC_vec 'v' #endif -#ifndef SV_GMAGIC -# define SV_GMAGIC 0 +#ifndef PERL_MAGIC_utf8 +# define PERL_MAGIC_utf8 'w' #endif -#ifndef SV_COW_DROP_PV -# define SV_COW_DROP_PV 0 +#ifndef PERL_MAGIC_substr +# define PERL_MAGIC_substr 'x' #endif -#ifndef SV_UTF8_NO_ENCODING -# define SV_UTF8_NO_ENCODING 0 +#ifndef PERL_MAGIC_defelem +# define PERL_MAGIC_defelem 'y' #endif -#ifndef SV_NOSTEAL -# define SV_NOSTEAL 0 +#ifndef PERL_MAGIC_glob +# define PERL_MAGIC_glob '*' #endif -#ifndef SV_CONST_RETURN -# define SV_CONST_RETURN 0 +#ifndef PERL_MAGIC_arylen +# define PERL_MAGIC_arylen '#' #endif -#ifndef SV_MUTABLE_RETURN -# define SV_MUTABLE_RETURN 0 +#ifndef PERL_MAGIC_pos +# define PERL_MAGIC_pos '.' #endif -#ifndef SV_SMAGIC -# define SV_SMAGIC 0 +#ifndef PERL_MAGIC_backref +# define PERL_MAGIC_backref '<' #endif -#ifndef SV_HAS_TRAILING_NUL -# define SV_HAS_TRAILING_NUL 0 +#ifndef PERL_MAGIC_ext +# define PERL_MAGIC_ext '~' #endif -#ifndef SV_COW_SHARED_HASH_KEYS -# define SV_COW_SHARED_HASH_KEYS 0 +#ifdef NEED_mess_sv +#define NEED_mess #endif -#if (PERL_BCDVERSION < 0x5007002) +#ifdef NEED_mess +#define NEED_mess_nocontext +#define NEED_vmess +#endif + +#ifndef croak_sv +#if (PERL_BCDVERSION >= 0x5007003) || ( (PERL_BCDVERSION >= 0x5006001) && (PERL_BCDVERSION < 0x5007000) ) +# if ( (PERL_BCDVERSION >= 0x5008000) && (PERL_BCDVERSION < 0x5008009) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5010001) ) +# define D_PPP_FIX_UTF8_ERRSV(errsv, sv) \ + STMT_START { \ + if (sv != errsv) \ + SvFLAGS(errsv) = (SvFLAGS(errsv) & ~SVf_UTF8) | \ + (SvFLAGS(sv) & SVf_UTF8); \ + } STMT_END +# else +# define D_PPP_FIX_UTF8_ERRSV(errsv, sv) STMT_START {} STMT_END +# endif +# define croak_sv(sv) \ + STMT_START { \ + if (SvROK(sv)) { \ + sv_setsv(ERRSV, sv); \ + croak(NULL); \ + } else { \ + D_PPP_FIX_UTF8_ERRSV(ERRSV, sv); \ + croak("%" SVf, SVfARG(sv)); \ + } \ + } STMT_END +#elif (PERL_BCDVERSION >= 0x5004000) +# define croak_sv(sv) croak("%" SVf, SVfARG(sv)) +#else +# define croak_sv(sv) croak("%s", SvPV_nolen(sv)) +#endif +#endif -#if defined(NEED_sv_2pv_flags) -static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +#ifndef die_sv +#if defined(NEED_die_sv) +static OP * DPPP_(my_die_sv)(pTHX_ SV *sv); static #else -extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +extern OP * DPPP_(my_die_sv)(pTHX_ SV *sv); #endif -#ifdef sv_2pv_flags -# undef sv_2pv_flags -#endif -#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c) -#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags) +#if defined(NEED_die_sv) || defined(NEED_die_sv_GLOBAL) -#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) +#ifdef die_sv +# undef die_sv +#endif +#define die_sv(a) DPPP_(my_die_sv)(aTHX_ a) +#define Perl_die_sv DPPP_(my_die_sv) -char * -DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) +OP * +DPPP_(my_die_sv)(pTHX_ SV *sv) { - STRLEN n_a = (STRLEN) flags; - return sv_2pv(sv, lp ? lp : &n_a); + croak_sv(sv); + return (OP *)NULL; } +#endif +#endif +#ifndef warn_sv +#if (PERL_BCDVERSION >= 0x5004000) +# define warn_sv(sv) warn("%" SVf, SVfARG(sv)) +#else +# define warn_sv(sv) warn("%s", SvPV_nolen(sv)) +#endif #endif -#if defined(NEED_sv_pvn_force_flags) -static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +#ifndef vmess +#if defined(NEED_vmess) +static SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); static #else -extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +extern SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); #endif -#ifdef sv_pvn_force_flags -# undef sv_pvn_force_flags -#endif -#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c) -#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags) +#if defined(NEED_vmess) || defined(NEED_vmess_GLOBAL) -#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) +#ifdef vmess +# undef vmess +#endif +#define vmess(a,b) DPPP_(my_vmess)(aTHX_ a,b) +#define Perl_vmess DPPP_(my_vmess) -char * -DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) +SV* +DPPP_(my_vmess)(pTHX_ const char* pat, va_list* args) { - STRLEN n_a = (STRLEN) flags; - return sv_pvn_force(sv, lp ? lp : &n_a); + mess(pat, args); + return PL_mess_sv; } +#endif +#endif +#if (PERL_BCDVERSION < 0x5006000) +#undef mess #endif +#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext) +#if defined(NEED_mess_nocontext) +static SV * DPPP_(my_mess_nocontext)(const char * pat, ...); +static +#else +extern SV * DPPP_(my_mess_nocontext)(const char * pat, ...); #endif -#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) -# define DPPP_SVPV_NOLEN_LP_ARG &PL_na +#if defined(NEED_mess_nocontext) || defined(NEED_mess_nocontext_GLOBAL) + +#define mess_nocontext DPPP_(my_mess_nocontext) +#define Perl_mess_nocontext DPPP_(my_mess_nocontext) + +SV* +DPPP_(my_mess_nocontext)(const char* pat, ...) +{ + dTHX; + SV *sv; + va_list args; + va_start(args, pat); + sv = vmess(pat, &args); + va_end(args); + return sv; +} +#endif +#endif + +#ifndef mess +#if defined(NEED_mess) +static SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); +static #else -# define DPPP_SVPV_NOLEN_LP_ARG 0 +extern SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); +#endif + +#if defined(NEED_mess) || defined(NEED_mess_GLOBAL) + +#define Perl_mess DPPP_(my_mess) + +SV* +DPPP_(my_mess)(pTHX_ const char* pat, ...) +{ + SV *sv; + va_list args; + va_start(args, pat); + sv = vmess(pat, &args); + va_end(args); + return sv; +} +#ifdef mess_nocontext +#define mess mess_nocontext +#else +#define mess Perl_mess_nocontext +#endif #endif -#ifndef SvPV_const -# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) #endif -#ifndef SvPV_mutable -# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC) +#ifndef mess_sv +#if defined(NEED_mess_sv) +static SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); +static +#else +extern SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); #endif -#ifndef SvPV_flags -# define SvPV_flags(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags)) + +#if defined(NEED_mess_sv) || defined(NEED_mess_sv_GLOBAL) + +#ifdef mess_sv +# undef mess_sv #endif -#ifndef SvPV_flags_const -# define SvPV_flags_const(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \ - (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN)) +#define mess_sv(a,b) DPPP_(my_mess_sv)(aTHX_ a,b) +#define Perl_mess_sv DPPP_(my_mess_sv) + +SV * +DPPP_(my_mess_sv)(pTHX_ SV *basemsg, bool consume) +{ + SV *tmp; + SV *ret; + + if (SvPOK(basemsg) && SvCUR(basemsg) && *(SvEND(basemsg)-1) == '\n') { + if (consume) + return basemsg; + ret = mess(""); + SvSetSV_nosteal(ret, basemsg); + return ret; + } + + if (consume) { + sv_catsv(basemsg, mess("")); + return basemsg; + } + + ret = mess(""); + tmp = newSVsv(ret); + SvSetSV_nosteal(ret, basemsg); + sv_catsv(ret, tmp); + sv_dec(tmp); + return ret; +} #endif -#ifndef SvPV_flags_const_nolen -# define SvPV_flags_const_nolen(sv, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX_const(sv) : \ - (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif -#ifndef SvPV_flags_mutable -# define SvPV_flags_mutable(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \ - sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) + +#ifndef warn_nocontext +#define warn_nocontext warn #endif -#ifndef SvPV_force -# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC) + +#ifndef croak_nocontext +#define croak_nocontext croak #endif -#ifndef SvPV_force_nolen -# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC) +#ifndef croak_no_modify +#define croak_no_modify() croak_nocontext("%s", PL_no_modify) +#define Perl_croak_no_modify() croak_no_modify() #endif -#ifndef SvPV_force_mutable -# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC) +#ifndef croak_memory_wrap +#if (PERL_BCDVERSION >= 0x5009002) || ( (PERL_BCDVERSION >= 0x5008006) && (PERL_BCDVERSION < 0x5009000) ) +# define croak_memory_wrap() croak_nocontext("%s", PL_memory_wrap) +#else +# define croak_memory_wrap() croak_nocontext("panic: memory wrap") +#endif #endif -#ifndef SvPV_force_nomg -# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0) +#ifndef croak_xs_usage +#if defined(NEED_croak_xs_usage) +static void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); +static +#else +extern void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); #endif -#ifndef SvPV_force_nomg_nolen -# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0) +#if defined(NEED_croak_xs_usage) || defined(NEED_croak_xs_usage_GLOBAL) + +#define croak_xs_usage DPPP_(my_croak_xs_usage) +#define Perl_croak_xs_usage DPPP_(my_croak_xs_usage) + + +#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE +#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) #endif -#ifndef SvPV_force_flags -# define SvPV_force_flags(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags)) + +void +DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params) +{ + dTHX; + const GV *const gv = CvGV(cv); + + PERL_ARGS_ASSERT_CROAK_XS_USAGE; + + if (gv) { + const char *const gvname = GvNAME(gv); + const HV *const stash = GvSTASH(gv); + const char *const hvname = stash ? HvNAME(stash) : NULL; + + if (hvname) + croak("Usage: %s::%s(%s)", hvname, gvname, params); + else + croak("Usage: %s(%s)", gvname, params); + } else { + /* Pants. I don't think that it should be possible to get here. */ + croak("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params); + } +} #endif -#ifndef SvPV_force_flags_nolen -# define SvPV_force_flags_nolen(sv, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags)) #endif -#ifndef SvPV_force_flags_mutable -# define SvPV_force_flags_mutable(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \ - : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) + +#ifndef PERL_SIGNALS_UNSAFE_FLAG + +#define PERL_SIGNALS_UNSAFE_FLAG 0x0001 + +#if (PERL_BCDVERSION < 0x5008000) +# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG +#else +# define D_PPP_PERL_SIGNALS_INIT 0 #endif -#ifndef SvPV_nolen -# define SvPV_nolen(sv) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) + +#if defined(NEED_PL_signals) +static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; +#elif defined(NEED_PL_signals_GLOBAL) +U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; +#else +extern U32 DPPP_(my_PL_signals); #endif -#ifndef SvPV_nolen_const -# define SvPV_nolen_const(sv) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) +#define PL_signals DPPP_(my_PL_signals) + #endif -#ifndef SvPV_nomg -# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) + +/* Hint: PL_ppaddr + * Calling an op via PL_ppaddr requires passing a context argument + * for threaded builds. Since the context argument is different for + * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will + * automatically be defined as the correct argument. + */ + +#if (PERL_BCDVERSION <= 0x5005005) +/* Replace: 1 */ +# define PL_ppaddr ppaddr +# define PL_no_modify no_modify +/* Replace: 0 */ #endif -#ifndef SvPV_nomg_const -# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0) +#if (PERL_BCDVERSION <= 0x5004005) +/* Replace: 1 */ +# define PL_DBsignal DBsignal +# define PL_DBsingle DBsingle +# define PL_DBsub DBsub +# define PL_DBtrace DBtrace +# define PL_Sv Sv +# define PL_bufend bufend +# define PL_bufptr bufptr +# define PL_compiling compiling +# define PL_copline copline +# define PL_curcop curcop +# define PL_curstash curstash +# define PL_debstash debstash +# define PL_defgv defgv +# define PL_diehook diehook +# define PL_dirty dirty +# define PL_dowarn dowarn +# define PL_errgv errgv +# define PL_error_count error_count +# define PL_expect expect +# define PL_hexdigit hexdigit +# define PL_hints hints +# define PL_in_my in_my +# define PL_laststatval laststatval +# define PL_lex_state lex_state +# define PL_lex_stuff lex_stuff +# define PL_linestr linestr +# define PL_na na +# define PL_perl_destruct_level perl_destruct_level +# define PL_perldb perldb +# define PL_rsfp_filters rsfp_filters +# define PL_rsfp rsfp +# define PL_stack_base stack_base +# define PL_stack_sp stack_sp +# define PL_statcache statcache +# define PL_stdingv stdingv +# define PL_sv_arenaroot sv_arenaroot +# define PL_sv_no sv_no +# define PL_sv_undef sv_undef +# define PL_sv_yes sv_yes +# define PL_tainted tainted +# define PL_tainting tainting +# define PL_tokenbuf tokenbuf +/* Replace: 0 */ #endif -#ifndef SvPV_nomg_const_nolen -# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) +/* Warning: PL_parser + * For perl versions earlier than 5.9.5, this is an always + * non-NULL dummy. Also, it cannot be dereferenced. Don't + * use it if you can avoid is and unless you absolutely know + * what you're doing. + * If you always check that PL_parser is non-NULL, you can + * define DPPP_PL_parser_NO_DUMMY to avoid the creation of + * a dummy parser structure. + */ + +#if (PERL_BCDVERSION >= 0x5009005) +# ifdef DPPP_PL_parser_NO_DUMMY +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (croak("panic: PL_parser == NULL in %s:%d", \ + __FILE__, __LINE__), (yy_parser *) NULL))->var) +# else +# ifdef DPPP_PL_parser_NO_DUMMY_WARNING +# define D_PPP_parser_dummy_warning(var) +# else +# define D_PPP_parser_dummy_warning(var) \ + warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), +# endif +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) +#if defined(NEED_PL_parser) +static yy_parser DPPP_(dummy_PL_parser); +#elif defined(NEED_PL_parser_GLOBAL) +yy_parser DPPP_(dummy_PL_parser); +#else +extern yy_parser DPPP_(dummy_PL_parser); +#endif + +# endif + +/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ +/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf + * Do not use this variable unless you know exactly what you're + * doing. It is internal to the perl parser and may change or even + * be removed in the future. As of perl 5.9.5, you have to check + * for (PL_parser != NULL) for this variable to have any effect. + * An always non-NULL PL_parser dummy is provided for earlier + * perl versions. + * If PL_parser is NULL when you try to access this variable, a + * dummy is being accessed instead and a warning is issued unless + * you define DPPP_PL_parser_NO_DUMMY_WARNING. + * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access + * this variable will croak with a panic message. + */ + +# define PL_expect D_PPP_my_PL_parser_var(expect) +# define PL_copline D_PPP_my_PL_parser_var(copline) +# define PL_rsfp D_PPP_my_PL_parser_var(rsfp) +# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) +# define PL_linestr D_PPP_my_PL_parser_var(linestr) +# define PL_bufptr D_PPP_my_PL_parser_var(bufptr) +# define PL_bufend D_PPP_my_PL_parser_var(bufend) +# define PL_lex_state D_PPP_my_PL_parser_var(lex_state) +# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) +# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) +# define PL_in_my D_PPP_my_PL_parser_var(in_my) +# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) +# define PL_error_count D_PPP_my_PL_parser_var(error_count) + + +#else + +/* ensure that PL_parser != NULL and cannot be dereferenced */ +# define PL_parser ((void *) 1) + +#endif +#ifndef mPUSHs +# define mPUSHs(s) PUSHs(sv_2mortal(s)) +#endif + +#ifndef PUSHmortal +# define PUSHmortal PUSHs(sv_newmortal()) +#endif + +#ifndef mPUSHp +# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) +#endif + +#ifndef mPUSHn +# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) +#endif + +#ifndef mPUSHi +# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) +#endif + +#ifndef mPUSHu +# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) +#endif +#ifndef mXPUSHs +# define mXPUSHs(s) XPUSHs(sv_2mortal(s)) +#endif + +#ifndef XPUSHmortal +# define XPUSHmortal XPUSHs(sv_newmortal()) +#endif + +#ifndef mXPUSHp +# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END +#endif + +#ifndef mXPUSHn +# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END +#endif + +#ifndef mXPUSHi +# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END +#endif + +#ifndef mXPUSHu +# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END +#endif + +/* Replace: 1 */ +#ifndef call_sv +# define call_sv perl_call_sv +#endif + +#ifndef call_pv +# define call_pv perl_call_pv +#endif + +#ifndef call_argv +# define call_argv perl_call_argv +#endif + +#ifndef call_method +# define call_method perl_call_method +#endif +#ifndef eval_sv +# define eval_sv perl_eval_sv +#endif + +/* Replace: 0 */ +#ifndef PERL_LOADMOD_DENY +# define PERL_LOADMOD_DENY 0x1 +#endif + +#ifndef PERL_LOADMOD_NOIMPORT +# define PERL_LOADMOD_NOIMPORT 0x2 +#endif + +#ifndef PERL_LOADMOD_IMPORT_OPS +# define PERL_LOADMOD_IMPORT_OPS 0x4 +#endif + +#ifndef G_METHOD +# define G_METHOD 64 +# ifdef call_sv +# undef call_sv +# endif +# if (PERL_BCDVERSION < 0x5006000) +# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) +# else +# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) +# endif +#endif + +/* Replace perl_eval_pv with eval_pv */ + +#ifndef eval_pv +#if defined(NEED_eval_pv) +static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); +static +#else +extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); +#endif + +#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) + +#ifdef eval_pv +# undef eval_pv +#endif +#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) +#define Perl_eval_pv DPPP_(my_eval_pv) + + +SV* +DPPP_(my_eval_pv)(char *p, I32 croak_on_error) +{ + dSP; + SV* sv = newSVpv(p, 0); + + PUSHMARK(sp); + eval_sv(sv, G_SCALAR); + SvREFCNT_dec(sv); + + SPAGAIN; + sv = POPs; + PUTBACK; + + if (croak_on_error && SvTRUEx(ERRSV)) + croak_sv(ERRSV); + + return sv; +} + +#endif +#endif + +#ifndef vload_module +#if defined(NEED_vload_module) +static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); +static +#else +extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); +#endif + +#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) + +#ifdef vload_module +# undef vload_module +#endif +#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) +#define Perl_vload_module DPPP_(my_vload_module) + + +void +DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) +{ + dTHR; + dVAR; + OP *veop, *imop; + + OP * const modname = newSVOP(OP_CONST, 0, name); + /* 5.005 has a somewhat hacky force_normal that doesn't croak on + SvREADONLY() if PL_compling is true. Current perls take care in + ck_require() to correctly turn off SvREADONLY before calling + force_normal_flags(). This seems a better fix than fudging PL_compling + */ + SvREADONLY_off(((SVOP*)modname)->op_sv); + modname->op_private |= OPpCONST_BARE; + if (ver) { + veop = newSVOP(OP_CONST, 0, ver); + } + else + veop = NULL; + if (flags & PERL_LOADMOD_NOIMPORT) { + imop = sawparens(newNULLLIST()); + } + else if (flags & PERL_LOADMOD_IMPORT_OPS) { + imop = va_arg(*args, OP*); + } + else { + SV *sv; + imop = NULL; + sv = va_arg(*args, SV*); + while (sv) { + imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); + sv = va_arg(*args, SV*); + } + } + { + const line_t ocopline = PL_copline; + COP * const ocurcop = PL_curcop; + const int oexpect = PL_expect; + +#if (PERL_BCDVERSION >= 0x5004000) + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), + veop, modname, imop); +#elif (PERL_BCDVERSION > 0x5003000) + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), + veop, modname, imop); +#else + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), + modname, imop); +#endif + PL_expect = oexpect; + PL_copline = ocopline; + PL_curcop = ocurcop; + } +} + +#endif +#endif + +#ifndef load_module +#if defined(NEED_load_module) +static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); +static +#else +extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); +#endif + +#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) + +#ifdef load_module +# undef load_module +#endif +#define load_module DPPP_(my_load_module) +#define Perl_load_module DPPP_(my_load_module) + + +void +DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) +{ + va_list args; + va_start(args, ver); + vload_module(flags, name, ver, &args); + va_end(args); +} + +#endif +#endif +#ifndef newRV_inc +# define newRV_inc(sv) newRV(sv) /* Replace */ +#endif + +#ifndef newRV_noinc +#if defined(NEED_newRV_noinc) +static SV * DPPP_(my_newRV_noinc)(SV *sv); +static +#else +extern SV * DPPP_(my_newRV_noinc)(SV *sv); +#endif + +#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) + +#ifdef newRV_noinc +# undef newRV_noinc +#endif +#define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) +#define Perl_newRV_noinc DPPP_(my_newRV_noinc) + +SV * +DPPP_(my_newRV_noinc)(SV *sv) +{ + SV *rv = (SV *)newRV(sv); + SvREFCNT_dec(sv); + return rv; +} +#endif +#endif + +/* Hint: newCONSTSUB + * Returns a CV* as of perl-5.7.1. This return value is not supported + * by Devel::PPPort. + */ + +/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ +#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005) +#if defined(NEED_newCONSTSUB) +static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +static +#else +extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +#endif + +#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) + +#ifdef newCONSTSUB +# undef newCONSTSUB +#endif +#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) +#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) + + +/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ +/* (There's no PL_parser in perl < 5.005, so this is completely safe) */ +#define D_PPP_PL_copline PL_copline + +void +DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) +{ + U32 oldhints = PL_hints; + HV *old_cop_stash = PL_curcop->cop_stash; + HV *old_curstash = PL_curstash; + line_t oldline = PL_curcop->cop_line; + PL_curcop->cop_line = D_PPP_PL_copline; + + PL_hints &= ~HINT_BLOCK_SCOPE; + if (stash) + PL_curstash = PL_curcop->cop_stash = stash; + + newSUB( + +#if (PERL_BCDVERSION < 0x5003022) + start_subparse(), +#elif (PERL_BCDVERSION == 0x5003022) + start_subparse(0), +#else /* 5.003_23 onwards */ + start_subparse(FALSE, 0), +#endif + + newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), + newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ + newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) + ); + + PL_hints = oldhints; + PL_curcop->cop_stash = old_cop_stash; + PL_curstash = old_curstash; + PL_curcop->cop_line = oldline; +} +#endif +#endif + +/* + * Boilerplate macros for initializing and accessing interpreter-local + * data from C. All statics in extensions should be reworked to use + * this, if you want to make the extension thread-safe. See ext/re/re.xs + * for an example of the use of these macros. + * + * Code that uses these macros is responsible for the following: + * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" + * 2. Declare a typedef named my_cxt_t that is a structure that contains + * all the data that needs to be interpreter-local. + * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. + * 4. Use the MY_CXT_INIT macro such that it is called exactly once + * (typically put in the BOOT: section). + * 5. Use the members of the my_cxt_t structure everywhere as + * MY_CXT.member. + * 6. Use the dMY_CXT macro (a declaration) in all the functions that + * access MY_CXT. + */ + +#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ + defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) + +#ifndef START_MY_CXT + +/* This must appear in all extensions that define a my_cxt_t structure, + * right after the definition (i.e. at file scope). The non-threads + * case below uses it to declare the data as static. */ +#define START_MY_CXT + +#if (PERL_BCDVERSION < 0x5004068) +/* Fetches the SV that keeps the per-interpreter data. */ +#define dMY_CXT_SV \ + SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) +#else /* >= perl5.004_68 */ +#define dMY_CXT_SV \ + SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ + sizeof(MY_CXT_KEY)-1, TRUE) +#endif /* < perl5.004_68 */ + +/* This declaration should be used within all functions that use the + * interpreter-local data. */ +#define dMY_CXT \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) + +/* Creates and zeroes the per-interpreter data. + * (We allocate my_cxtp in a Perl SV so that it will be released when + * the interpreter goes away.) */ +#define MY_CXT_INIT \ + dMY_CXT_SV; \ + /* newSV() allocates one more than needed */ \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Zero(my_cxtp, 1, my_cxt_t); \ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) + +/* This macro must be used to access members of the my_cxt_t structure. + * e.g. MYCXT.some_data */ +#define MY_CXT (*my_cxtp) + +/* Judicious use of these macros can reduce the number of times dMY_CXT + * is used. Use is similar to pTHX, aTHX etc. */ +#define pMY_CXT my_cxt_t *my_cxtp +#define pMY_CXT_ pMY_CXT, +#define _pMY_CXT ,pMY_CXT +#define aMY_CXT my_cxtp +#define aMY_CXT_ aMY_CXT, +#define _aMY_CXT ,aMY_CXT + +#endif /* START_MY_CXT */ + +#ifndef MY_CXT_CLONE +/* Clones the per-interpreter data. */ +#define MY_CXT_CLONE \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) +#endif + +#else /* single interpreter */ + +#ifndef START_MY_CXT + +#define START_MY_CXT static my_cxt_t my_cxt; +#define dMY_CXT_SV dNOOP +#define dMY_CXT dNOOP +#define MY_CXT_INIT NOOP +#define MY_CXT my_cxt + +#define pMY_CXT void +#define pMY_CXT_ +#define _pMY_CXT +#define aMY_CXT +#define aMY_CXT_ +#define _aMY_CXT + +#endif /* START_MY_CXT */ + +#ifndef MY_CXT_CLONE +#define MY_CXT_CLONE NOOP +#endif + +#endif + +#ifndef IVdf +# if IVSIZE == LONGSIZE +# define IVdf "ld" +# define UVuf "lu" +# define UVof "lo" +# define UVxf "lx" +# define UVXf "lX" +# elif IVSIZE == INTSIZE +# define IVdf "d" +# define UVuf "u" +# define UVof "o" +# define UVxf "x" +# define UVXf "X" +# else +# error "cannot define IV/UV formats" +# endif +#endif + +#ifndef NVef +# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \ + defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000) + /* Not very likely, but let's try anyway. */ +# define NVef PERL_PRIeldbl +# define NVff PERL_PRIfldbl +# define NVgf PERL_PRIgldbl +# else +# define NVef "e" +# define NVff "f" +# define NVgf "g" +# endif +#endif + +#ifndef SvREFCNT_inc +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (SvREFCNT(_sv))++; \ + _sv; \ + }) +# else +# define SvREFCNT_inc(sv) \ + ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) +# endif +#endif + +#ifndef SvREFCNT_inc_simple +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_simple(sv) \ + ({ \ + if (sv) \ + (SvREFCNT(sv))++; \ + (SV *)(sv); \ + }) +# else +# define SvREFCNT_inc_simple(sv) \ + ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) +# endif +#endif + +#ifndef SvREFCNT_inc_NN +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_NN(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + SvREFCNT(_sv)++; \ + _sv; \ + }) +# else +# define SvREFCNT_inc_NN(sv) \ + (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) +# endif #endif -#ifndef SvPV_nomg_nolen -# define SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, 0)) -#endif -#ifndef SvPV_renew -# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ - SvPV_set((sv), (char *) saferealloc( \ - (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ - } STMT_END +#ifndef SvREFCNT_inc_void +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_void(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (void)(SvREFCNT(_sv)++); \ + }) +# else +# define SvREFCNT_inc_void(sv) \ + (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) +# endif #endif -#ifndef SvMAGIC_set -# define SvMAGIC_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ - (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END +#ifndef SvREFCNT_inc_simple_void +# define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END #endif -#if (PERL_BCDVERSION < 0x5009003) -#ifndef SvPVX_const -# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) +#ifndef SvREFCNT_inc_simple_NN +# define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) #endif -#ifndef SvPVX_mutable -# define SvPVX_mutable(sv) (0 + SvPVX(sv)) +#ifndef SvREFCNT_inc_void_NN +# define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif -#ifndef SvRV_set -# define SvRV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ - (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END + +#ifndef SvREFCNT_inc_simple_void_NN +# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif +#ifndef newSV_type + +#if defined(NEED_newSV_type) +static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); +static #else -#ifndef SvPVX_const -# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) +extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); #endif -#ifndef SvPVX_mutable -# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) -#endif -#ifndef SvRV_set -# define SvRV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ - ((sv)->sv_u.svu_rv = (val)); } STMT_END -#endif +#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) +#ifdef newSV_type +# undef newSV_type #endif -#ifndef SvSTASH_set -# define SvSTASH_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ - (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END +#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) +#define Perl_newSV_type DPPP_(my_newSV_type) + + +SV* +DPPP_(my_newSV_type)(pTHX_ svtype const t) +{ + SV* const sv = newSV(0); + sv_upgrade(sv, t); + return sv; +} + #endif -#if (PERL_BCDVERSION < 0x5004000) -#ifndef SvUV_set -# define SvUV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ - (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END #endif +#if (PERL_BCDVERSION < 0x5006000) +# define D_PPP_CONSTPV_ARG(x) ((char *) (x)) #else -#ifndef SvUV_set -# define SvUV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ - (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END +# define D_PPP_CONSTPV_ARG(x) (x) #endif - +#ifndef newSVpvn +# define newSVpvn(data,len) ((data) \ + ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ + : newSV(0)) +#endif +#ifndef newSVpvn_utf8 +# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) +#endif +#ifndef SVf_UTF8 +# define SVf_UTF8 0 #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) -#if defined(NEED_vnewSVpvf) -static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); +#ifndef newSVpvn_flags + +#if defined(NEED_newSVpvn_flags) +static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); static #else -extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); +extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); #endif -#ifdef vnewSVpvf -# undef vnewSVpvf +#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) + +#ifdef newSVpvn_flags +# undef newSVpvn_flags #endif -#define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) -#define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) +#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) +#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) -#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) SV * -DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) +DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) { - register SV *sv = newSV(0); - sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); - return sv; + SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len); + SvFLAGS(sv) |= (flags & SVf_UTF8); + return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv; } #endif -#endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf) -# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf) -# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) +/* Backwards compatibility stuff... :-( */ +#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen) +# define NEED_sv_2pv_flags #endif - -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) -#if defined(NEED_sv_catpvf_mg) -static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); -static -#else -extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); +#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL) +# define NEED_sv_2pv_flags_GLOBAL #endif -#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) +/* Hint: sv_2pv_nolen + * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen(). + */ +#ifndef sv_2pv_nolen +# define sv_2pv_nolen(sv) SvPV_nolen(sv) +#endif -#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) +#ifdef SvPVbyte -void -DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) -{ - va_list args; - va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +/* Hint: SvPVbyte + * Does not work in perl-5.6.1, ppport.h implements a version + * borrowed from perl-5.7.3. + */ -#endif -#endif +#if (PERL_BCDVERSION < 0x5007000) -#ifdef PERL_IMPLICIT_CONTEXT -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) -#if defined(NEED_sv_catpvf_mg_nocontext) -static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); +#if defined(NEED_sv_2pvbyte) +static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); static #else -extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); +extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); #endif -#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) -#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) +#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) -#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) +#ifdef sv_2pvbyte +# undef sv_2pvbyte +#endif +#define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) +#define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) -void -DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) + +char * +DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) { - dTHX; - va_list args; - va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); + sv_utf8_downgrade(sv,0); + return SvPV(sv,*lp); } #endif -#endif -#endif -/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */ -#ifndef sv_catpvf_mg -# ifdef PERL_IMPLICIT_CONTEXT -# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext -# else -# define sv_catpvf_mg Perl_sv_catpvf_mg -# endif -#endif +/* Hint: sv_2pvbyte + * Use the SvPVbyte() macro instead of sv_2pvbyte(). + */ + +#undef SvPVbyte + +#define SvPVbyte(sv, lp) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg) -# define sv_vcatpvf_mg(sv, pat, args) \ - STMT_START { \ - sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ - SvSETMAGIC(sv); \ - } STMT_END #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) -#if defined(NEED_sv_setpvf_mg) -static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); -static #else -extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); -#endif -#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) +# define SvPVbyte SvPV +# define sv_2pvbyte sv_2pv -#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) +#endif +#ifndef sv_2pvbyte_nolen +# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv) +#endif -void -DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) -{ - va_list args; - va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +/* Hint: sv_pvn + * Always use the SvPV() macro instead of sv_pvn(). + */ + +/* Hint: sv_pvn_force + * Always use the SvPV_force() macro instead of sv_pvn_force(). + */ -#endif +/* If these are undefined, they're not handled by the core anyway */ +#ifndef SV_IMMEDIATE_UNREF +# define SV_IMMEDIATE_UNREF 0 #endif -#ifdef PERL_IMPLICIT_CONTEXT -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) -#if defined(NEED_sv_setpvf_mg_nocontext) -static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); -static -#else -extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); +#ifndef SV_GMAGIC +# define SV_GMAGIC 0 #endif -#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) -#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) - -#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) +#ifndef SV_COW_DROP_PV +# define SV_COW_DROP_PV 0 +#endif -void -DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) -{ - dTHX; - va_list args; - va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +#ifndef SV_UTF8_NO_ENCODING +# define SV_UTF8_NO_ENCODING 0 +#endif +#ifndef SV_NOSTEAL +# define SV_NOSTEAL 0 #endif + +#ifndef SV_CONST_RETURN +# define SV_CONST_RETURN 0 #endif + +#ifndef SV_MUTABLE_RETURN +# define SV_MUTABLE_RETURN 0 #endif -/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */ -#ifndef sv_setpvf_mg -# ifdef PERL_IMPLICIT_CONTEXT -# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext -# else -# define sv_setpvf_mg Perl_sv_setpvf_mg -# endif +#ifndef SV_SMAGIC +# define SV_SMAGIC 0 #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg) -# define sv_vsetpvf_mg(sv, pat, args) \ - STMT_START { \ - sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ - SvSETMAGIC(sv); \ - } STMT_END +#ifndef SV_HAS_TRAILING_NUL +# define SV_HAS_TRAILING_NUL 0 #endif -/* Hint: newSVpvn_share - * The SVs created by this function only mimic the behaviour of - * shared PVs without really being shared. Only use if you know - * what you're doing. - */ +#ifndef SV_COW_SHARED_HASH_KEYS +# define SV_COW_SHARED_HASH_KEYS 0 +#endif -#ifndef newSVpvn_share +#if (PERL_BCDVERSION < 0x5007002) -#if defined(NEED_newSVpvn_share) -static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); +#if defined(NEED_sv_2pv_flags) +static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); static #else -extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); +extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif -#ifdef newSVpvn_share -# undef newSVpvn_share +#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) + +#ifdef sv_2pv_flags +# undef sv_2pv_flags #endif -#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) -#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) +#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c) +#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags) -#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) -SV * -DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) +char * +DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) { - SV *sv; - if (len < 0) - len = -len; - if (!hash) - PERL_HASH(hash, (char*) src, len); - sv = newSVpvn((char *) src, len); - sv_upgrade(sv, SVt_PVIV); - SvIVX(sv) = hash; - SvREADONLY_on(sv); - SvPOK_on(sv); - return sv; + STRLEN n_a = (STRLEN) flags; + return sv_2pv(sv, lp ? lp : &n_a); } #endif -#endif -#ifndef SvSHARED_HASH -# define SvSHARED_HASH(sv) (0 + SvUVX(sv)) -#endif -#ifndef HvNAME_get -# define HvNAME_get(hv) HvNAME(hv) -#endif -#ifndef HvNAMELEN_get -# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) -#endif -#ifndef GvSVn -# define GvSVn(gv) GvSV(gv) +#if defined(NEED_sv_pvn_force_flags) +static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +static +#else +extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif -#ifndef isGV_with_GP -# define isGV_with_GP(gv) isGV(gv) +#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) + +#ifdef sv_pvn_force_flags +# undef sv_pvn_force_flags #endif +#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c) +#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags) + + +char * +DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) +{ + STRLEN n_a = (STRLEN) flags; + return sv_pvn_force(sv, lp ? lp : &n_a); +} -#ifndef gv_fetchpvn_flags -# define gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt) #endif -#ifndef gv_fetchsv -# define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt) #endif -#ifndef get_cvn_flags -# define get_cvn_flags(name, namelen, flags) get_cv(name, flags) + +#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) +# define D_PPP_SVPV_NOLEN_LP_ARG &PL_na +#else +# define D_PPP_SVPV_NOLEN_LP_ARG 0 #endif -#ifndef WARN_ALL -# define WARN_ALL 0 +#ifndef SvPV_const +# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) #endif -#ifndef WARN_CLOSURE -# define WARN_CLOSURE 1 +#ifndef SvPV_mutable +# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC) #endif - -#ifndef WARN_DEPRECATED -# define WARN_DEPRECATED 2 +#ifndef SvPV_flags +# define SvPV_flags(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags)) #endif - -#ifndef WARN_EXITING -# define WARN_EXITING 3 +#ifndef SvPV_flags_const +# define SvPV_flags_const(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \ + (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN)) #endif - -#ifndef WARN_GLOB -# define WARN_GLOB 4 +#ifndef SvPV_flags_const_nolen +# define SvPV_flags_const_nolen(sv, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX_const(sv) : \ + (const char*) sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif - -#ifndef WARN_IO -# define WARN_IO 5 +#ifndef SvPV_flags_mutable +# define SvPV_flags_mutable(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \ + sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif - -#ifndef WARN_CLOSED -# define WARN_CLOSED 6 +#ifndef SvPV_force +# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC) #endif -#ifndef WARN_EXEC -# define WARN_EXEC 7 +#ifndef SvPV_force_nolen +# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC) #endif -#ifndef WARN_LAYER -# define WARN_LAYER 8 +#ifndef SvPV_force_mutable +# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC) #endif -#ifndef WARN_NEWLINE -# define WARN_NEWLINE 9 +#ifndef SvPV_force_nomg +# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0) #endif -#ifndef WARN_PIPE -# define WARN_PIPE 10 +#ifndef SvPV_force_nomg_nolen +# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0) #endif - -#ifndef WARN_UNOPENED -# define WARN_UNOPENED 11 +#ifndef SvPV_force_flags +# define SvPV_force_flags(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags)) #endif - -#ifndef WARN_MISC -# define WARN_MISC 12 +#ifndef SvPV_force_flags_nolen +# define SvPV_force_flags_nolen(sv, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? SvPVX(sv) : sv_pvn_force_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags)) #endif - -#ifndef WARN_NUMERIC -# define WARN_NUMERIC 13 +#ifndef SvPV_force_flags_mutable +# define SvPV_force_flags_mutable(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \ + : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif - -#ifndef WARN_ONCE -# define WARN_ONCE 14 +#ifndef SvPV_nolen +# define SvPV_nolen(sv) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) #endif - -#ifndef WARN_OVERFLOW -# define WARN_OVERFLOW 15 +#ifndef SvPV_nolen_const +# define SvPV_nolen_const(sv) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) #endif - -#ifndef WARN_PACK -# define WARN_PACK 16 +#ifndef SvPV_nomg +# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) #endif -#ifndef WARN_PORTABLE -# define WARN_PORTABLE 17 +#ifndef SvPV_nomg_const +# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0) #endif -#ifndef WARN_RECURSION -# define WARN_RECURSION 18 +#ifndef SvPV_nomg_const_nolen +# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) #endif -#ifndef WARN_REDEFINE -# define WARN_REDEFINE 19 +#ifndef SvPV_nomg_nolen +# define SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, 0)) +#endif +#ifndef SvPV_renew +# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ + SvPV_set((sv), (char *) saferealloc( \ + (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ + } STMT_END #endif - -#ifndef WARN_REGEXP -# define WARN_REGEXP 20 +#ifndef SvMAGIC_set +# define SvMAGIC_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ + (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END #endif -#ifndef WARN_SEVERE -# define WARN_SEVERE 21 +#if (PERL_BCDVERSION < 0x5009003) +#ifndef SvPVX_const +# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) #endif -#ifndef WARN_DEBUGGING -# define WARN_DEBUGGING 22 +#ifndef SvPVX_mutable +# define SvPVX_mutable(sv) (0 + SvPVX(sv)) #endif - -#ifndef WARN_INPLACE -# define WARN_INPLACE 23 +#ifndef SvRV_set +# define SvRV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ + (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END #endif -#ifndef WARN_INTERNAL -# define WARN_INTERNAL 24 +#else +#ifndef SvPVX_const +# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) #endif -#ifndef WARN_MALLOC -# define WARN_MALLOC 25 +#ifndef SvPVX_mutable +# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) #endif - -#ifndef WARN_SIGNAL -# define WARN_SIGNAL 26 +#ifndef SvRV_set +# define SvRV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ + ((sv)->sv_u.svu_rv = (val)); } STMT_END #endif -#ifndef WARN_SUBSTR -# define WARN_SUBSTR 27 #endif - -#ifndef WARN_SYNTAX -# define WARN_SYNTAX 28 +#ifndef SvSTASH_set +# define SvSTASH_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ + (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END #endif -#ifndef WARN_AMBIGUOUS -# define WARN_AMBIGUOUS 29 +#if (PERL_BCDVERSION < 0x5004000) +#ifndef SvUV_set +# define SvUV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ + (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END #endif -#ifndef WARN_BAREWORD -# define WARN_BAREWORD 30 +#else +#ifndef SvUV_set +# define SvUV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ + (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END #endif -#ifndef WARN_DIGIT -# define WARN_DIGIT 31 #endif -#ifndef WARN_PARENTHESIS -# define WARN_PARENTHESIS 32 +#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) +#if defined(NEED_vnewSVpvf) +static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); +static +#else +extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); #endif -#ifndef WARN_PRECEDENCE -# define WARN_PRECEDENCE 33 -#endif +#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) -#ifndef WARN_PRINTF -# define WARN_PRINTF 34 +#ifdef vnewSVpvf +# undef vnewSVpvf #endif +#define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) +#define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) -#ifndef WARN_PROTOTYPE -# define WARN_PROTOTYPE 35 -#endif -#ifndef WARN_QW -# define WARN_QW 36 -#endif +SV * +DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) +{ + register SV *sv = newSV(0); + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); + return sv; +} -#ifndef WARN_RESERVED -# define WARN_RESERVED 37 #endif - -#ifndef WARN_SEMICOLON -# define WARN_SEMICOLON 38 #endif -#ifndef WARN_TAINT -# define WARN_TAINT 39 +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf) +# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif -#ifndef WARN_THREADS -# define WARN_THREADS 40 +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf) +# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif -#ifndef WARN_UNINITIALIZED -# define WARN_UNINITIALIZED 41 +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) +#if defined(NEED_sv_catpvf_mg) +static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); +static +#else +extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif -#ifndef WARN_UNPACK -# define WARN_UNPACK 42 -#endif +#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) -#ifndef WARN_UNTIE -# define WARN_UNTIE 43 -#endif +#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) -#ifndef WARN_UTF8 -# define WARN_UTF8 44 -#endif -#ifndef WARN_VOID -# define WARN_VOID 45 -#endif +void +DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) +{ + va_list args; + va_start(args, pat); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} -#ifndef WARN_ASSERTIONS -# define WARN_ASSERTIONS 46 -#endif -#ifndef packWARN -# define packWARN(a) (a) #endif - -#ifndef ckWARN -# ifdef G_WARN_ON -# define ckWARN(a) (PL_dowarn & G_WARN_ON) -# else -# define ckWARN(a) PL_dowarn -# endif #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner) -#if defined(NEED_warner) -static void DPPP_(my_warner)(U32 err, const char *pat, ...); +#ifdef PERL_IMPLICIT_CONTEXT +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) +#if defined(NEED_sv_catpvf_mg_nocontext) +static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); static #else -extern void DPPP_(my_warner)(U32 err, const char *pat, ...); +extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif -#define Perl_warner DPPP_(my_warner) +#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) + +#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) +#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) -#if defined(NEED_warner) || defined(NEED_warner_GLOBAL) void -DPPP_(my_warner)(U32 err, const char *pat, ...) +DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) { - SV *sv; + dTHX; va_list args; - - PERL_UNUSED_ARG(err); - va_start(args, pat); - sv = vnewSVpvf(pat, &args); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); va_end(args); - sv_2mortal(sv); - warn("%s", SvPV_nolen(sv)); } -#define warner Perl_warner - -#define Perl_warner_nocontext Perl_warner - #endif #endif - -/* concatenating with "" ensures that only literal strings are accepted as argument - * note that STR_WITH_LEN() can't be used as argument to macros or functions that - * under some configurations might be macros - */ -#ifndef STR_WITH_LEN -# define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) -#endif -#ifndef newSVpvs -# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif -#ifndef newSVpvs_flags -# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) +/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */ +#ifndef sv_catpvf_mg +# ifdef PERL_IMPLICIT_CONTEXT +# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext +# else +# define sv_catpvf_mg Perl_sv_catpvf_mg +# endif #endif -#ifndef newSVpvs_share -# define newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg) +# define sv_vcatpvf_mg(sv, pat, args) \ + STMT_START { \ + sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ + SvSETMAGIC(sv); \ + } STMT_END #endif -#ifndef sv_catpvs -# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) +#if defined(NEED_sv_setpvf_mg) +static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); +static +#else +extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif -#ifndef sv_setpvs -# define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) -#endif +#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) -#ifndef hv_fetchs -# define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) -#endif +#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) -#ifndef hv_stores -# define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) -#endif -#ifndef gv_fetchpvs -# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) -#endif -#ifndef gv_stashpvs -# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) +void +DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) +{ + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} + #endif -#ifndef get_cvs -# define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags) #endif -#ifndef SvGETMAGIC -# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END + +#ifdef PERL_IMPLICIT_CONTEXT +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) +#if defined(NEED_sv_setpvf_mg_nocontext) +static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); +static +#else +extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif -/* Some random bits for sv_unmagicext. These should probably be pulled in for - real and organized at some point */ -#ifndef HEf_SVKEY -# define HEf_SVKEY -2 -#endif +#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) -#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) -# define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) -#else -# define MUTABLE_PTR(p) ((void *) (p)) -#endif +#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) +#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) -#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) -/* end of random bits */ -#ifndef PERL_MAGIC_sv -# define PERL_MAGIC_sv '\0' -#endif +void +DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} -#ifndef PERL_MAGIC_overload -# define PERL_MAGIC_overload 'A' #endif - -#ifndef PERL_MAGIC_overload_elem -# define PERL_MAGIC_overload_elem 'a' #endif - -#ifndef PERL_MAGIC_overload_table -# define PERL_MAGIC_overload_table 'c' #endif -#ifndef PERL_MAGIC_bm -# define PERL_MAGIC_bm 'B' +/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */ +#ifndef sv_setpvf_mg +# ifdef PERL_IMPLICIT_CONTEXT +# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext +# else +# define sv_setpvf_mg Perl_sv_setpvf_mg +# endif #endif -#ifndef PERL_MAGIC_regdata -# define PERL_MAGIC_regdata 'D' +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg) +# define sv_vsetpvf_mg(sv, pat, args) \ + STMT_START { \ + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ + SvSETMAGIC(sv); \ + } STMT_END #endif -#ifndef PERL_MAGIC_regdatum -# define PERL_MAGIC_regdatum 'd' -#endif +/* Hint: newSVpvn_share + * The SVs created by this function only mimic the behaviour of + * shared PVs without really being shared. Only use if you know + * what you're doing. + */ -#ifndef PERL_MAGIC_env -# define PERL_MAGIC_env 'E' -#endif +#ifndef newSVpvn_share -#ifndef PERL_MAGIC_envelem -# define PERL_MAGIC_envelem 'e' +#if defined(NEED_newSVpvn_share) +static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); +static +#else +extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); #endif -#ifndef PERL_MAGIC_fm -# define PERL_MAGIC_fm 'f' -#endif +#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) -#ifndef PERL_MAGIC_regex_global -# define PERL_MAGIC_regex_global 'g' +#ifdef newSVpvn_share +# undef newSVpvn_share #endif +#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) +#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) -#ifndef PERL_MAGIC_isa -# define PERL_MAGIC_isa 'I' -#endif -#ifndef PERL_MAGIC_isaelem -# define PERL_MAGIC_isaelem 'i' -#endif +SV * +DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) +{ + SV *sv; + if (len < 0) + len = -len; + if (!hash) + PERL_HASH(hash, (char*) src, len); + sv = newSVpvn((char *) src, len); + sv_upgrade(sv, SVt_PVIV); + SvIVX(sv) = hash; + SvREADONLY_on(sv); + SvPOK_on(sv); + return sv; +} -#ifndef PERL_MAGIC_nkeys -# define PERL_MAGIC_nkeys 'k' #endif -#ifndef PERL_MAGIC_dbfile -# define PERL_MAGIC_dbfile 'L' #endif - -#ifndef PERL_MAGIC_dbline -# define PERL_MAGIC_dbline 'l' +#ifndef SvSHARED_HASH +# define SvSHARED_HASH(sv) (0 + SvUVX(sv)) #endif - -#ifndef PERL_MAGIC_mutex -# define PERL_MAGIC_mutex 'm' +#ifndef HvNAME_get +# define HvNAME_get(hv) HvNAME(hv) #endif - -#ifndef PERL_MAGIC_shared -# define PERL_MAGIC_shared 'N' +#ifndef HvNAMELEN_get +# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) #endif -#ifndef PERL_MAGIC_shared_scalar -# define PERL_MAGIC_shared_scalar 'n' +#ifndef gv_fetchpvn_flags +#if defined(NEED_gv_fetchpvn_flags) +static GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types); +static +#else +extern GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types); #endif -#ifndef PERL_MAGIC_collxfrm -# define PERL_MAGIC_collxfrm 'o' -#endif +#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL) -#ifndef PERL_MAGIC_tied -# define PERL_MAGIC_tied 'P' +#ifdef gv_fetchpvn_flags +# undef gv_fetchpvn_flags #endif +#define gv_fetchpvn_flags(a,b,c,d) DPPP_(my_gv_fetchpvn_flags)(aTHX_ a,b,c,d) +#define Perl_gv_fetchpvn_flags DPPP_(my_gv_fetchpvn_flags) -#ifndef PERL_MAGIC_tiedelem -# define PERL_MAGIC_tiedelem 'p' -#endif -#ifndef PERL_MAGIC_tiedscalar -# define PERL_MAGIC_tiedscalar 'q' -#endif +GV* +DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types) { + char *namepv = savepvn(name, len); + GV* stash = gv_fetchpv(namepv, TRUE, SVt_PVHV); + Safefree(namepv); + return stash; +} -#ifndef PERL_MAGIC_qr -# define PERL_MAGIC_qr 'r' #endif - -#ifndef PERL_MAGIC_sig -# define PERL_MAGIC_sig 'S' #endif - -#ifndef PERL_MAGIC_sigelem -# define PERL_MAGIC_sigelem 's' +#ifndef GvSVn +# define GvSVn(gv) GvSV(gv) #endif -#ifndef PERL_MAGIC_taint -# define PERL_MAGIC_taint 't' +#ifndef isGV_with_GP +# define isGV_with_GP(gv) isGV(gv) #endif -#ifndef PERL_MAGIC_uvar -# define PERL_MAGIC_uvar 'U' +#ifndef gv_fetchsv +# define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt) #endif - -#ifndef PERL_MAGIC_uvar_elem -# define PERL_MAGIC_uvar_elem 'u' +#ifndef get_cvn_flags +# define get_cvn_flags(name, namelen, flags) get_cv(name, flags) #endif -#ifndef PERL_MAGIC_vstring -# define PERL_MAGIC_vstring 'V' +#ifndef gv_init_pvn +# define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE) #endif -#ifndef PERL_MAGIC_vec -# define PERL_MAGIC_vec 'v' +/* concatenating with "" ensures that only literal strings are accepted as argument + * note that STR_WITH_LEN() can't be used as argument to macros or functions that + * under some configurations might be macros + */ +#ifndef STR_WITH_LEN +# define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) #endif - -#ifndef PERL_MAGIC_utf8 -# define PERL_MAGIC_utf8 'w' +#ifndef newSVpvs +# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_substr -# define PERL_MAGIC_substr 'x' +#ifndef newSVpvs_flags +# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) #endif -#ifndef PERL_MAGIC_defelem -# define PERL_MAGIC_defelem 'y' +#ifndef newSVpvs_share +# define newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0) #endif -#ifndef PERL_MAGIC_glob -# define PERL_MAGIC_glob '*' +#ifndef sv_catpvs +# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_arylen -# define PERL_MAGIC_arylen '#' +#ifndef sv_setpvs +# define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_pos -# define PERL_MAGIC_pos '.' +#ifndef hv_fetchs +# define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) #endif -#ifndef PERL_MAGIC_backref -# define PERL_MAGIC_backref '<' +#ifndef hv_stores +# define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) +#endif +#ifndef gv_fetchpvs +# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) #endif -#ifndef PERL_MAGIC_ext -# define PERL_MAGIC_ext '~' +#ifndef gv_stashpvs +# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) +#endif +#ifndef get_cvs +# define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags) +#endif +#ifndef SvGETMAGIC +# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif /* That's the best we can do... */ @@ -6473,10 +7351,11 @@ extern MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl); #endif +#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) + #define mg_findext DPPP_(my_mg_findext) #define Perl_mg_findext DPPP_(my_mg_findext) -#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl) { @@ -6507,13 +7386,14 @@ extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); #endif +#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) + #ifdef sv_unmagicext # undef sv_unmagicext #endif #define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c) #define Perl_sv_unmagicext DPPP_(my_sv_unmagicext) -#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) int DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl) @@ -6680,13 +7560,14 @@ extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp); #endif +#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) + #ifdef caller_cx # undef caller_cx #endif #define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b) #define Perl_caller_cx DPPP_(my_caller_cx) -#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp) @@ -6797,13 +7678,14 @@ extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); #endif +#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) + #ifdef grok_numeric_radix # undef grok_numeric_radix #endif #define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b) #define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix) -#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) bool DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send) { @@ -6853,13 +7735,14 @@ extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); #endif +#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) + #ifdef grok_number # undef grok_number #endif #define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c) #define Perl_grok_number DPPP_(my_grok_number) -#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) int DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) { @@ -7067,13 +7950,14 @@ extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) + #ifdef grok_bin # undef grok_bin #endif #define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d) #define Perl_grok_bin DPPP_(my_grok_bin) -#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) UV DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -7169,13 +8053,14 @@ extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) + #ifdef grok_hex # undef grok_hex #endif #define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d) #define Perl_grok_hex DPPP_(my_grok_hex) -#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) UV DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -7271,13 +8156,14 @@ extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) + #ifdef grok_oct # undef grok_oct #endif #define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d) #define Perl_grok_oct DPPP_(my_grok_oct) -#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) UV DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -7364,10 +8250,11 @@ extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); #endif +#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) + #define my_snprintf DPPP_(my_my_snprintf) #define Perl_my_snprintf DPPP_(my_my_snprintf) -#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) int DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) @@ -7398,10 +8285,11 @@ extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); #endif +#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) + #define my_sprintf DPPP_(my_my_sprintf) #define Perl_my_sprintf DPPP_(my_my_sprintf) -#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) int DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) @@ -7440,10 +8328,11 @@ extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); #endif +#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) + #define my_strlcat DPPP_(my_my_strlcat) #define Perl_my_strlcat DPPP_(my_my_strlcat) -#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) Size_t DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) @@ -7470,10 +8359,11 @@ extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); #endif +#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) + #define my_strlcpy DPPP_(my_my_strlcpy) #define Perl_my_strlcpy DPPP_(my_my_strlcpy) -#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) Size_t DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) @@ -7560,13 +8450,14 @@ extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); #endif +#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) + #ifdef pv_escape # undef pv_escape #endif #define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f) #define Perl_pv_escape DPPP_(my_pv_escape) -#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) char * DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str, @@ -7579,7 +8470,7 @@ STRLEN wrote = 0; STRLEN chsize = 0; STRLEN readsize = 1; -#if defined(is_utf8_string) && defined(utf8_to_uvchr) +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0; #endif const char *pv = str; @@ -7589,15 +8480,15 @@ if (!(flags & PERL_PV_ESCAPE_NOCLEAR)) sv_setpvs(dsv, ""); -#if defined(is_utf8_string) && defined(utf8_to_uvchr) +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count)) isuni = 1; #endif for (; pv < end && (!max || wrote < max) ; pv += readsize) { const UV u = -#if defined(is_utf8_string) && defined(utf8_to_uvchr) - isuni ? utf8_to_uvchr((U8*)pv, &readsize) : +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) + isuni ? utf8_to_uvchr_buf((U8*)pv, end, &readsize) : #endif (U8)*pv; const U8 c = (U8)u & 0xFF; @@ -7669,13 +8560,14 @@ extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); #endif +#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) + #ifdef pv_pretty # undef pv_pretty #endif #define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g) #define Perl_pv_pretty DPPP_(my_pv_pretty) -#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) char * DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count, @@ -7723,13 +8615,14 @@ extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); #endif +#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) + #ifdef pv_display # undef pv_display #endif #define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e) #define Perl_pv_display DPPP_(my_pv_display) -#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) char * DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) diff -Nru libsignatures-perl-0.13/README libsignatures-perl-0.14/README --- libsignatures-perl-0.13/README 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/README 2019-05-03 05:39:46.000000000 +0000 @@ -1,7 +1,5 @@ - - This archive contains the distribution signatures, -version 0.13: +version 0.14: Subroutine signatures with no source filter @@ -11,5 +9,4 @@ the same terms as the Perl 5 programming language system itself. -This README file was generated by Dist::Zilla::Plugin::Readme v5.037. - +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff -Nru libsignatures-perl-0.13/signatures.xs libsignatures-perl-0.14/signatures.xs --- libsignatures-perl-0.13/signatures.xs 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/signatures.xs 2019-05-03 05:39:46.000000000 +0000 @@ -151,6 +151,9 @@ return op; } + assert(PL_lex_stuff == op_sv); + PL_lex_stuff = NULL; + tmp = hook_toke_scan_str (aTHX_ s); tmp2 = hook_parser_get_lex_stuff (aTHX); hook_parser_clear_lex_stuff (aTHX); diff -Nru libsignatures-perl-0.13/t/00-report-prereqs.dd libsignatures-perl-0.14/t/00-report-prereqs.dd --- libsignatures-perl-0.13/t/00-report-prereqs.dd 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/t/00-report-prereqs.dd 2019-05-03 05:39:46.000000000 +0000 @@ -11,95 +11,32 @@ }, 'develop' => { 'recommends' => { - 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.100' + 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.148', + 'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007' }, 'requires' => { 'Devel::PPPort' => '3.23', - 'Dist::Zilla' => '5', - 'Dist::Zilla::Plugin::Authority' => '1.009', - 'Dist::Zilla::Plugin::AuthorityFromModule' => '0.002', - 'Dist::Zilla::Plugin::AutoMetaResources' => '0', - 'Dist::Zilla::Plugin::AutoPrereqs' => '0', - 'Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional' => '0.004', - 'Dist::Zilla::Plugin::CheckIssues' => '0', - 'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0', - 'Dist::Zilla::Plugin::CheckSelfDependency' => '0', - 'Dist::Zilla::Plugin::CheckStrictVersion' => '0', - 'Dist::Zilla::Plugin::ConfirmRelease' => '0', - 'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0', - 'Dist::Zilla::Plugin::FileFinder::ByName' => '0', - 'Dist::Zilla::Plugin::GenerateFile::ShareDir' => '0', - 'Dist::Zilla::Plugin::Git::Check' => '0', - 'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004', - 'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0', - 'Dist::Zilla::Plugin::Git::Commit' => '2.020', - 'Dist::Zilla::Plugin::Git::Contributors' => '0.004', - 'Dist::Zilla::Plugin::Git::Describe' => '0.004', - 'Dist::Zilla::Plugin::Git::GatherDir' => '2.016', - 'Dist::Zilla::Plugin::Git::Push' => '0', - 'Dist::Zilla::Plugin::Git::Remote::Check' => '0', - 'Dist::Zilla::Plugin::Git::Tag' => '0', - 'Dist::Zilla::Plugin::GitHub::Update' => '0.40', - 'Dist::Zilla::Plugin::GithubMeta' => '0.54', - 'Dist::Zilla::Plugin::InstallGuide' => '0', - 'Dist::Zilla::Plugin::Keywords' => '0.004', - 'Dist::Zilla::Plugin::License' => '0', - 'Dist::Zilla::Plugin::MakeMaker::Awesome' => '0.27', - 'Dist::Zilla::Plugin::Manifest' => '0', - 'Dist::Zilla::Plugin::MetaConfig' => '0', - 'Dist::Zilla::Plugin::MetaJSON' => '0', - 'Dist::Zilla::Plugin::MetaNoIndex' => '0', - 'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002', - 'Dist::Zilla::Plugin::MetaTests' => '0', - 'Dist::Zilla::Plugin::MetaYAML' => '0', - 'Dist::Zilla::Plugin::MinimumPerl' => '1.006', - 'Dist::Zilla::Plugin::MojibakeTests' => '0.8', - 'Dist::Zilla::Plugin::NextRelease' => '5.033', - 'Dist::Zilla::Plugin::PPPort' => '0', - 'Dist::Zilla::Plugin::PodCoverageTests' => '0', - 'Dist::Zilla::Plugin::PodSyntaxTests' => '0', - 'Dist::Zilla::Plugin::PodWeaver' => '4.005', - 'Dist::Zilla::Plugin::Prereqs' => '0', - 'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0', - 'Dist::Zilla::Plugin::PromptIfStale' => '0', - 'Dist::Zilla::Plugin::Readme' => '0', - 'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180', - 'Dist::Zilla::Plugin::RewriteVersion::Transitional' => '0.004', - 'Dist::Zilla::Plugin::Run::AfterBuild' => '0.038', - 'Dist::Zilla::Plugin::Run::AfterRelease' => '0.038', - 'Dist::Zilla::Plugin::RunExtraTests' => '0.024', - 'Dist::Zilla::Plugin::StaticInstall' => '0.005', - 'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.008', - 'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0', - 'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0.006', - 'Dist::Zilla::Plugin::Test::Compile' => '2.039', - 'Dist::Zilla::Plugin::Test::EOL' => '0.17', - 'Dist::Zilla::Plugin::Test::Kwalitee' => '2.06', - 'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000003', - 'Dist::Zilla::Plugin::Test::NoTabs' => '0.08', - 'Dist::Zilla::Plugin::Test::Pod::No404s' => '1.002', - 'Dist::Zilla::Plugin::Test::PodSpelling' => '2.006001', - 'Dist::Zilla::Plugin::Test::Portability' => '0', - 'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0.019', - 'Dist::Zilla::Plugin::TestRelease' => '0', - 'Dist::Zilla::Plugin::UploadToCPAN' => '0', - 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.095', + 'Encode' => '0', 'File::Spec' => '0', 'IO::Handle' => '0', 'IPC::Open3' => '0', 'Pod::Coverage::TrustPod' => '0', + 'Pod::Wordlist' => '0', 'Test::CPAN::Changes' => '0.19', 'Test::CPAN::Meta' => '0', 'Test::CleanNamespaces' => '0.15', 'Test::EOL' => '0', 'Test::Kwalitee' => '1.21', + 'Test::MinimumVersion' => '0', 'Test::Mojibake' => '0', - 'Test::More' => '0.94', + 'Test::More' => '0.96', 'Test::NoTabs' => '0', 'Test::Pod' => '1.41', 'Test::Pod::Coverage' => '1.08', 'Test::Pod::No404s' => '0', - 'Test::Spelling' => '0.12' + 'Test::Portability::Files' => '0', + 'Test::Spelling' => '0.12', + 'perl' => '5.006' } }, 'runtime' => { @@ -122,12 +59,89 @@ 'B::Deparse' => '0', 'ExtUtils::MakeMaker' => '0', 'File::Spec' => '0', - 'Test::More' => '0', + 'Test::More' => '0.88', 'base' => '0', 'perl' => '5.006', 'vars' => '0' } - } + }, + 'x_Dist_Zilla' => { + 'requires' => { + 'Dist::Zilla' => '5', + 'Dist::Zilla::Plugin::Authority' => '1.009', + 'Dist::Zilla::Plugin::AutoMetaResources' => '0', + 'Dist::Zilla::Plugin::AutoPrereqs' => '5.038', + 'Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional' => '0.004', + 'Dist::Zilla::Plugin::CheckIssues' => '0', + 'Dist::Zilla::Plugin::CheckMetaResources' => '0', + 'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0.019', + 'Dist::Zilla::Plugin::CheckSelfDependency' => '0', + 'Dist::Zilla::Plugin::CheckStrictVersion' => '0', + 'Dist::Zilla::Plugin::ConfirmRelease' => '0', + 'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0', + 'Dist::Zilla::Plugin::EnsureLatestPerl' => '0', + 'Dist::Zilla::Plugin::FileFinder::ByName' => '0', + 'Dist::Zilla::Plugin::GenerateFile::FromShareDir' => '0', + 'Dist::Zilla::Plugin::Git::Check' => '0', + 'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004', + 'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0', + 'Dist::Zilla::Plugin::Git::Commit' => '2.020', + 'Dist::Zilla::Plugin::Git::Contributors' => '0.029', + 'Dist::Zilla::Plugin::Git::Describe' => '0.004', + 'Dist::Zilla::Plugin::Git::GatherDir' => '2.016', + 'Dist::Zilla::Plugin::Git::Push' => '0', + 'Dist::Zilla::Plugin::Git::Remote::Check' => '0', + 'Dist::Zilla::Plugin::Git::Tag' => '0', + 'Dist::Zilla::Plugin::GitHub::Update' => '0.40', + 'Dist::Zilla::Plugin::GithubMeta' => '0.54', + 'Dist::Zilla::Plugin::InstallGuide' => '1.200005', + 'Dist::Zilla::Plugin::Keywords' => '0.004', + 'Dist::Zilla::Plugin::License' => '5.038', + 'Dist::Zilla::Plugin::MakeMaker::Awesome' => '0.27', + 'Dist::Zilla::Plugin::Manifest' => '0', + 'Dist::Zilla::Plugin::MetaConfig' => '0', + 'Dist::Zilla::Plugin::MetaJSON' => '0', + 'Dist::Zilla::Plugin::MetaNoIndex' => '0', + 'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002', + 'Dist::Zilla::Plugin::MetaTests' => '0', + 'Dist::Zilla::Plugin::MetaYAML' => '0', + 'Dist::Zilla::Plugin::MinimumPerl' => '1.006', + 'Dist::Zilla::Plugin::MojibakeTests' => '0.8', + 'Dist::Zilla::Plugin::NextRelease' => '5.033', + 'Dist::Zilla::Plugin::PPPort' => '0', + 'Dist::Zilla::Plugin::PodCoverageTests' => '5.040', + 'Dist::Zilla::Plugin::PodSyntaxTests' => '5.040', + 'Dist::Zilla::Plugin::PodWeaver' => '4.005', + 'Dist::Zilla::Plugin::Prereqs' => '0', + 'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0.006', + 'Dist::Zilla::Plugin::PromptIfStale' => '0', + 'Dist::Zilla::Plugin::Readme' => '0', + 'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180', + 'Dist::Zilla::Plugin::RewriteVersion::Transitional' => '0.004', + 'Dist::Zilla::Plugin::Run::AfterBuild' => '0.041', + 'Dist::Zilla::Plugin::Run::AfterRelease' => '0.038', + 'Dist::Zilla::Plugin::RunExtraTests' => '0.024', + 'Dist::Zilla::Plugin::StaticInstall' => '0.005', + 'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.012', + 'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0', + 'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0.006', + 'Dist::Zilla::Plugin::Test::Compile' => '2.039', + 'Dist::Zilla::Plugin::Test::EOL' => '0.17', + 'Dist::Zilla::Plugin::Test::Kwalitee' => '2.10', + 'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000008', + 'Dist::Zilla::Plugin::Test::NoTabs' => '0.08', + 'Dist::Zilla::Plugin::Test::Pod::No404s' => '1.003', + 'Dist::Zilla::Plugin::Test::PodSpelling' => '2.006003', + 'Dist::Zilla::Plugin::Test::Portability' => '2.000007', + 'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0.022', + 'Dist::Zilla::Plugin::TestRelease' => '0', + 'Dist::Zilla::Plugin::UploadToCPAN' => '0', + 'Dist::Zilla::Plugin::UseUnsafeInc' => '0', + 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.119', + 'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007', + 'Software::License::Perl_5' => '0' + } + } }; $x; } \ No newline at end of file diff -Nru libsignatures-perl-0.13/t/00-report-prereqs.t libsignatures-perl-0.14/t/00-report-prereqs.t --- libsignatures-perl-0.13/t/00-report-prereqs.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/t/00-report-prereqs.t 2019-05-03 05:39:46.000000000 +0000 @@ -3,7 +3,7 @@ use strict; use warnings; -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021 +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027 use Test::More tests => 1; @@ -60,7 +60,15 @@ } my @include = qw( + Encode + File::Temp + JSON::PP + Module::Runtime Pod::Coverage + Sub::Name + YAML + autodie + DynaLoader ); my @exclude = qw( @@ -68,7 +76,7 @@ ); # Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; +my $static_prereqs = do './t/00-report-prereqs.dd'; # Merge all prereqs (either with ::Prereqs or a hashref) my $full_prereqs = _merge_prereqs( @@ -78,12 +86,14 @@ # Add dynamic prereqs to the included modules list (if we can) my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META ) { - if ( my $meta = eval { CPAN::Meta->load_file($source) } ) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); - } +my $cpan_meta_error; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); } else { + $cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source) $source = 'static metadata'; } @@ -169,10 +179,18 @@ diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; } +if ( $cpan_meta_error || @dep_errors ) { + diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n"; +} + +if ( $cpan_meta_error ) { + my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; + diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n"; +} + if ( @dep_errors ) { diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", + "\nThe following REQUIRED prerequisites were not satisfied:\n", @dep_errors, "\n" ); diff -Nru libsignatures-perl-0.13/t/attribute-failure.t libsignatures-perl-0.14/t/attribute-failure.t --- libsignatures-perl-0.13/t/attribute-failure.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/t/attribute-failure.t 2019-05-03 05:39:46.000000000 +0000 @@ -1,7 +1,7 @@ use strict; use warnings; -use Test::More; +use Test::More 0.88; use B::Deparse; use signatures; diff -Nru libsignatures-perl-0.13/xt/author/00-compile.t libsignatures-perl-0.14/xt/author/00-compile.t --- libsignatures-perl-0.13/xt/author/00-compile.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/00-compile.t 2019-05-03 05:39:46.000000000 +0000 @@ -2,7 +2,7 @@ use strict; use warnings; -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.053 +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058 use Test::More 0.94; @@ -16,7 +16,9 @@ # no fake home requested -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; +my @switches = ( + -d 'blib' ? '-Mblib' : '-Ilib', +); use File::Spec; use IPC::Open3; @@ -30,14 +32,18 @@ # see L my $stderr = IO::Handle->new; - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} } + $^X, @switches, '-e', "require q[$lib]")) + if $ENV{PERL_COMPILE_TEST_DEBUG}; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]"); binmode $stderr, ':crlf' if $^O eq 'MSWin32'; my @_warnings = <$stderr>; waitpid($pid, 0); is($?, 0, "$lib loaded ok"); shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { blib->VERSION('1.01') }; + and not eval { +require blib; blib->VERSION('1.01') }; if (@_warnings) { diff -Nru libsignatures-perl-0.13/xt/author/changes_has_content.t libsignatures-perl-0.14/xt/author/changes_has_content.t --- libsignatures-perl-0.13/xt/author/changes_has_content.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/changes_has_content.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,15 @@ +use strict; +use warnings; + +use Test::More; +plan skip_all => 'xt/release/changes_has_content.t is missing' if not -e 'xt/release/changes_has_content.t'; + +# skip for master branch, only for travis +if (($ENV{TRAVIS_PULL_REQUEST} || '') eq 'false') { + chomp(my $branch_name = ($ENV{TRAVIS_BRANCH} || `git rev-parse --abbrev-ref HEAD`)); + $TODO = 'Changes need not have content for this release yet if this is only the master branch' + if ($branch_name || '') eq 'master'; +} + +do './xt/release/changes_has_content.t'; +die $@ if $@; diff -Nru libsignatures-perl-0.13/xt/author/eol.t libsignatures-perl-0.14/xt/author/eol.t --- libsignatures-perl-0.13/xt/author/eol.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/eol.t 2019-05-03 05:39:46.000000000 +0000 @@ -1,7 +1,7 @@ use strict; use warnings; -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.18 +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 use Test::More 0.88; use Test::EOL; @@ -20,20 +20,21 @@ 't/warnings.t', 't/weird.t', 'xt/author/00-compile.t', + 'xt/author/changes_has_content.t', 'xt/author/clean-namespaces.t', 'xt/author/eol.t', 'xt/author/kwalitee.t', + 'xt/author/minimum-version.t', 'xt/author/mojibake.t', 'xt/author/no-tabs.t', + 'xt/author/pod-coverage.t', + 'xt/author/pod-no404s.t', 'xt/author/pod-spell.t', + 'xt/author/pod-syntax.t', + 'xt/author/portability.t', 'xt/release/changes_has_content.t', 'xt/release/cpan-changes.t', - 'xt/release/distmeta.t', - 'xt/release/minimum-version.t', - 'xt/release/pod-coverage.t', - 'xt/release/pod-no404s.t', - 'xt/release/pod-syntax.t', - 'xt/release/portability.t' + 'xt/release/distmeta.t' ); eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; diff -Nru libsignatures-perl-0.13/xt/author/kwalitee.t libsignatures-perl-0.14/xt/author/kwalitee.t --- libsignatures-perl-0.13/xt/author/kwalitee.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/kwalitee.t 2019-05-03 05:39:46.000000000 +0000 @@ -1,4 +1,4 @@ -# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.11 +# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.12 use strict; use warnings; use Test::More 0.88; diff -Nru libsignatures-perl-0.13/xt/author/minimum-version.t libsignatures-perl-0.14/xt/author/minimum-version.t --- libsignatures-perl-0.13/xt/author/minimum-version.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/minimum-version.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,6 @@ +#!perl + +use Test::More; + +use Test::MinimumVersion; +all_minimum_version_ok( qq{5.006} ); diff -Nru libsignatures-perl-0.13/xt/author/no-tabs.t libsignatures-perl-0.14/xt/author/no-tabs.t --- libsignatures-perl-0.13/xt/author/no-tabs.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/no-tabs.t 2019-05-03 05:39:46.000000000 +0000 @@ -20,20 +20,21 @@ 't/warnings.t', 't/weird.t', 'xt/author/00-compile.t', + 'xt/author/changes_has_content.t', 'xt/author/clean-namespaces.t', 'xt/author/eol.t', 'xt/author/kwalitee.t', + 'xt/author/minimum-version.t', 'xt/author/mojibake.t', 'xt/author/no-tabs.t', + 'xt/author/pod-coverage.t', + 'xt/author/pod-no404s.t', 'xt/author/pod-spell.t', + 'xt/author/pod-syntax.t', + 'xt/author/portability.t', 'xt/release/changes_has_content.t', 'xt/release/cpan-changes.t', - 'xt/release/distmeta.t', - 'xt/release/minimum-version.t', - 'xt/release/pod-coverage.t', - 'xt/release/pod-no404s.t', - 'xt/release/pod-syntax.t', - 'xt/release/portability.t' + 'xt/release/distmeta.t' ); notabs_ok($_) foreach @files; diff -Nru libsignatures-perl-0.13/xt/author/pod-coverage.t libsignatures-perl-0.14/xt/author/pod-coverage.t --- libsignatures-perl-0.13/xt/author/pod-coverage.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/pod-coverage.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff -Nru libsignatures-perl-0.13/xt/author/pod-no404s.t libsignatures-perl-0.14/xt/author/pod-no404s.t --- libsignatures-perl-0.13/xt/author/pod-no404s.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/pod-no404s.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,21 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_NO404S + AUTOMATED_TESTING +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::No404s"; +if ( $@ ) { + plan skip_all => 'Test::Pod::No404s required for testing POD'; +} +else { + all_pod_files_ok(); +} diff -Nru libsignatures-perl-0.13/xt/author/pod-spell.t libsignatures-perl-0.14/xt/author/pod-spell.t --- libsignatures-perl-0.13/xt/author/pod-spell.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/pod-spell.t 2019-05-03 05:39:46.000000000 +0000 @@ -2,34 +2,38 @@ use warnings; use Test::More; -# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006009 +# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007005 use Test::Spelling 0.12; use Pod::Wordlist; add_stopwords(); -all_pod_files_spelling_ok( qw( bin lib ) ); +all_pod_files_spelling_ok( qw( examples lib script t xt ) ); __DATA__ -Florian -Ragwitz -rafl -Karen -Etheridge -ether -Peter -Martini -PeterCMartini +Alex Alexandr +Chrysostomos Ciornii -alexchorny +Dave +Etheridge Father -Chrysostomos -sprout -Alex +Florian Kapranoff -alex -Steffen +Karen +Martini +Mitchell +Peter +PeterCMartini +Ragwitz Schwigon -ss5 +Steffen +alex +alexchorny +davem +ether +irc lib +rafl signatures +sprout +ss5 diff -Nru libsignatures-perl-0.13/xt/author/pod-syntax.t libsignatures-perl-0.14/xt/author/pod-syntax.t --- libsignatures-perl-0.13/xt/author/pod-syntax.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/pod-syntax.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff -Nru libsignatures-perl-0.13/xt/author/portability.t libsignatures-perl-0.14/xt/author/portability.t --- libsignatures-perl-0.13/xt/author/portability.t 1970-01-01 00:00:00.000000000 +0000 +++ libsignatures-perl-0.14/xt/author/portability.t 2019-05-03 05:39:46.000000000 +0000 @@ -0,0 +1,10 @@ +use strict; +use warnings; + +use Test::More; + +eval 'use Test::Portability::Files'; +plan skip_all => 'Test::Portability::Files required for testing portability' + if $@; + +run_tests(); diff -Nru libsignatures-perl-0.13/xt/release/changes_has_content.t libsignatures-perl-0.14/xt/release/changes_has_content.t --- libsignatures-perl-0.13/xt/release/changes_has_content.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/changes_has_content.t 2019-05-03 05:39:46.000000000 +0000 @@ -1,11 +1,10 @@ -#!perl - use Test::More tests => 2; note 'Checking Changes'; my $changes_file = 'Changes'; -my $newver = '0.13'; +my $newver = '0.14'; my $trial_token = '-TRIAL'; +my $encoding = 'UTF-8'; SKIP: { ok(-e $changes_file, "$changes_file file exists") @@ -16,8 +15,6 @@ done_testing; -# _get_changes copied and adapted from Dist::Zilla::Plugin::Git::Commit -# by Jerome Quelin sub _get_changes { my $newver = shift; @@ -25,6 +22,10 @@ # parse changelog to find commit message open(my $fh, '<', $changes_file) or die "cannot open $changes_file: $!"; my $changelog = join('', <$fh>); + if ($encoding) { + require Encode; + $changelog = Encode::decode($encoding, $changelog, Encode::FB_CROAK()); + } close $fh; my @content = diff -Nru libsignatures-perl-0.13/xt/release/cpan-changes.t libsignatures-perl-0.14/xt/release/cpan-changes.t --- libsignatures-perl-0.13/xt/release/cpan-changes.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/cpan-changes.t 2019-05-03 05:39:46.000000000 +0000 @@ -1,11 +1,10 @@ -#!perl - use strict; use warnings; -use Test::More 0.96 tests => 2; -use_ok('Test::CPAN::Changes'); +# this test was generated with Dist::Zilla::Plugin::Test::CPAN::Changes 0.012 + +use Test::More 0.96 tests => 1; +use Test::CPAN::Changes; subtest 'changes_ok' => sub { changes_file_ok('Changes'); }; -done_testing(); diff -Nru libsignatures-perl-0.13/xt/release/minimum-version.t libsignatures-perl-0.14/xt/release/minimum-version.t --- libsignatures-perl-0.13/xt/release/minimum-version.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/minimum-version.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -#!perl - -use Test::More; - -eval "use Test::MinimumVersion"; -plan skip_all => "Test::MinimumVersion required for testing minimum versions" - if $@; -all_minimum_version_ok( qq{5.006} ); diff -Nru libsignatures-perl-0.13/xt/release/pod-coverage.t libsignatures-perl-0.14/xt/release/pod-coverage.t --- libsignatures-perl-0.13/xt/release/pod-coverage.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/pod-coverage.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff -Nru libsignatures-perl-0.13/xt/release/pod-no404s.t libsignatures-perl-0.14/xt/release/pod-no404s.t --- libsignatures-perl-0.13/xt/release/pod-no404s.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/pod-no404s.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_NO404S - AUTOMATED_TESTING -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::No404s"; -if ( $@ ) { - plan skip_all => 'Test::Pod::No404s required for testing POD'; -} -else { - all_pod_files_ok(); -} diff -Nru libsignatures-perl-0.13/xt/release/pod-syntax.t libsignatures-perl-0.14/xt/release/pod-syntax.t --- libsignatures-perl-0.13/xt/release/pod-syntax.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/pod-syntax.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff -Nru libsignatures-perl-0.13/xt/release/portability.t libsignatures-perl-0.14/xt/release/portability.t --- libsignatures-perl-0.13/xt/release/portability.t 2015-07-28 06:35:42.000000000 +0000 +++ libsignatures-perl-0.14/xt/release/portability.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More; - -eval 'use Test::Portability::Files'; -plan skip_all => 'Test::Portability::Files required for testing portability' - if $@; - -run_tests();