Hello community,
here is the log from the commit of package perl-Mac-PropertyList for
openSUSE:Factory checked in at 2018-04-19 15:26:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mac-PropertyList (Old)
and /work/SRC/openSUSE:Factory/.perl-Mac-PropertyList.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mac-PropertyList"
Thu Apr 19 15:26:47 2018 rev:17 rq:593459 version:1.413
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-Mac-PropertyList/perl-Mac-PropertyList.changes
2015-02-08 11:42:48.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Mac-PropertyList.new/perl-Mac-PropertyList.changes
2018-04-19 15:26:50.913523964 +0200
@@ -1,0 +2,33 @@
+Fri Mar 23 06:30:16 UTC 2018 - [email protected]
+
+- updated to 1.413
+ see /usr/share/doc/packages/perl-Mac-PropertyList/Changes
+
+ 1.413 2018-03-22T18:51:07Z
+ * Update to Artistic License 2.0
+
+-------------------------------------------------------------------
+Mon Jul 31 05:49:21 UTC 2017 - [email protected]
+
+- updated to 1.412
+ see /usr/share/doc/packages/perl-Mac-PropertyList/Changes
+
+ 1.412 2017-07-30T18:27:33Z
+ * Fix for plist files with comments ([email protected]) RT #122466
+ and GitHub #5 (as a pull request)
+ * Note that this module does not handle ASCII or JSON formats (but they
+ are in the wishlist now) (anonymous Yahoo! user)
+
+-------------------------------------------------------------------
+Fri Jul 21 05:43:51 UTC 2017 - [email protected]
+
+- updated to 1.411
+ see /usr/share/doc/packages/perl-Mac-PropertyList/Changes
+
+-------------------------------------------------------------------
+Wed Jul 19 05:48:51 UTC 2017 - [email protected]
+
+- updated to 1.411
+ see /usr/share/doc/packages/perl-Mac-PropertyList/Changes
+
+-------------------------------------------------------------------
Old:
----
Mac-PropertyList-1.41.tar.gz
New:
----
Mac-PropertyList-1.413.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Mac-PropertyList.spec ++++++
--- /var/tmp/diff_new_pack.MQIxrc/_old 2018-04-19 15:26:51.525499040 +0200
+++ /var/tmp/diff_new_pack.MQIxrc/_new 2018-04-19 15:26:51.525499040 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Mac-PropertyList
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,18 +17,20 @@
Name: perl-Mac-PropertyList
-Version: 1.41
+Version: 1.413
Release: 0
%define cpan_name Mac-PropertyList
-Summary: work with Mac plists at a low level
-License: Artistic-1.0 or GPL-1.0+
+Summary: Work with Mac Plists at a Low Level
+License: Artistic-2.0
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Mac-PropertyList/
-Source:
http://www.cpan.org/authors/id/B/BD/BDFOY/%{cpan_name}-%{version}.tar.gz
+Source0:
https://cpan.metacpan.org/authors/id/B/BD/BDFOY/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(XML::Entities)
BuildRequires: perl(parent)
Requires: perl(XML::Entities)
@@ -37,9 +39,9 @@
%description
This module is a low-level interface to the Mac OS X Property List (plist)
-format. You probably shouldn't use this in applications–build interfaces on
-top of this so you don't have to put all the heinous multi-level object
-stuff where people have to look at it.
+format in either XML or binary. You probably shouldn't use this in
+applications–build interfaces on top of this so you don't have to put all
+the heinous multi-level object stuff where people have to look at it.
You can parse a plist file and get back a data structure. You can take that
data structure and get back the plist as XML. If you want to change the
@@ -48,6 +50,14 @@
You don't need to be on Mac OS X to use this. It simply parses and
manipulates a text format that Mac OS X uses.
+If you need to work with the old ASCII or newer JSON formet, you can use
+the *plutil* tool that comes with MacOS X:
+
+ % plutil -convert xml1 -o ExampleBinary.xml.plist ExampleBinary.plist
+
+Or, you can extend this module to handle those formats (and send a pull
+request).
+
%prep
%setup -q -n %{cpan_name}-%{version}
@@ -65,6 +75,7 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes examples LICENSE README
+%doc Changes examples
+%license LICENSE
%changelog
++++++ Mac-PropertyList-1.41.tar.gz -> Mac-PropertyList-1.413.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/Changes
new/Mac-PropertyList-1.413/Changes
--- old/Mac-PropertyList-1.41/Changes 2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/Changes 2018-03-22 19:51:21.000000000 +0100
@@ -1,125 +1,141 @@
-# Changes for Mac::PropertyList
+Revision history for Perl module Mac::PropertyList
-1.41 - Fri Sep 12 06:15:56 2014
- * Fix up some metadata (GitHub #4)
+1.413 2018-03-22T18:51:07Z
+ * Update to Artistic License 2.0
-1.40 - Fri Jan 3 13:57:08 2014
- * Get rid of MYMETA
+1.412 2017-07-30T18:27:33Z
+ * Fix for plist files with comments ([email protected]) RT #122466
+ and GitHub #5 (as a pull request)
+ * Note that this module does not handle ASCII or JSON formats (but they
+ are in the wishlist now) (anonymous Yahoo! user)
-1.39 - Fri Sep 27 16:28:21 2013
- * Bump to full release
+1.411 2017-07-19T02:10:42Z
+ * Bram Stappers fixed a regression with XML comments
-1.38_02 - Mon Sep 23 19:52:20 2013
- * Fix non-portable strftime format (RT #83460)
+1.41_01 2015-01-29T04:41:09Z
+ - RT #101795: Mis-parse or hang while parsing non-pretty XML (Tom Wyant)
+ - RT #101796: Wide character in print warning in t/read_binary.t (Tom
Wyant)
-1.38_01 - Sun Feb 10 17:08:57 2013
- * Wim Lewis improved the binary reader / writer and made better
+1.41 2014-09-12
+ - Fix up some metadata (GitHub #4)
+
+1.40 2014-01-03
+ - Get rid of MYMETA
+
+1.39 2013-09-27
+ - Bump to full release
+
+1.38_02 2013-09-23
+ - Fix non-portable strftime format (RT #83460)
+
+1.38_01 2013-02-10
+ - Wim Lewis improved the binary reader / writer and made better
tests for it.
-1.38 - Tue Oct 23 15:44:26 2012
- * Wim Lewis <[email protected]> added WriteBinary. Great work!
+1.38 2012-10-23
+ - Wim Lewis <[email protected]> added WriteBinary. Great work!
-1.37 - Thu Aug 30 11:39:39 2012
- * fix plist_as_perl to be the same as as_perl (and as
+1.37 2012-08-30
+ - fix plist_as_perl to be the same as as_perl (and as
documented)
-1.36 - Sat Jun 16 16:10:01 2012
- * Update the docs, and make the previous dev releases official
+1.36 2012-06-16
+ - Update the docs, and make the previous dev releases official
-1.35 - Fri Mar 9 19:38:59 2012
- * Document the as_perl method, which undecorates that internal
+1.35 2012-03-09
+ - Document the as_perl method, which undecorates that internal
data structure
-1.34 - Mon Jul 11 18:10:36 2011
- * In ReadBinary, handle the data as big-endian. This means you
+1.34 2011-07-11
+ - In ReadBinary, handle the data as big-endian. This means you
need the > pack modifier introduced in 5.10.
-1.33_02 - Sat Jul 9 13:17:15 2011
- * Require 5.10 because I need the > pack modifier
+1.33_02 2011-07-09
+ - Require 5.10 because I need the > pack modifier
-1.33_01 - Sat Jul 2 18:06:19 2011
- * Ensure binary reads are for big endian
- * Various cleanups for format and whitespace
+1.33_01 2011-07-02
+ - Ensure binary reads are for big endian
+ - Various cleanups for format and whitespace
-1.33 - Tue Nov 24 08:00:33 2009
- * Hey, you have to decode those XML entities as you read
+1.33 2009-11-24
+ - Hey, you have to decode those XML entities as you read
them.
-1.32 - Wed Sep 16 23:03:57 CDT 2009
- * Things seen to work, so lets release it.
+1.32 2009-09-16
+ - Things seen to work, so lets release it.
-1.31_01 - Sun May 3 06:40:14 2009
- * Added initial support for reading binary property lists
+1.31_01 2009-05-03
+ - Added initial support for reading binary property lists
-1.31 - Wed Jan 16 05:28:00 2008
- * Clean up for move from CVS to SVN. No need to upgrade.
+1.31 2008-01-16
+ - Clean up for move from CVS to SVN. No need to upgrade.
-1.30 - Tue Jan 9 22:32:27 2007
- * updated copyright and license info
- * no code changes, so no need to upgrade
+1.30 2007-01-09
+ - updated copyright and license info
+ - no code changes, so no need to upgrade
-1.29 - Wed May 17 19:25:09 2006
- * Added a parse_plist_fh function so you can open the files
+1.29 2006-05-17
+ - Added a parse_plist_fh function so you can open the files
any way that you like (for instance, as ":utf8").
- * Added pod_coverage.t to MANIFEST. I use it so I might as
+ - Added pod_coverage.t to MANIFEST. I use it so I might as
well distribute it.
-1.28 - Tue May 16 01:15:52 2006
- * This change actually makes the change I claimed in the last version.
- * I added parse_plist_file to @EXPORT_OK, where it should have been.
-
-1.26 - Tue May 16 01:02:29 2006
- * Added parse_plist_file to the export list. Why was it missing?
- * There are no other code changes, and you should upgrade
+1.28 2006-05-16
+ - This change actually makes the change I claimed in the last version.
+ - I added parse_plist_file to @EXPORT_OK, where it should have been.
+
+1.26 2006-05-16
+ - Added parse_plist_file to the export list. Why was it missing?
+ - There are no other code changes, and you should upgrade
if your users expect the documentation to be right. :)
-1.24 - Tue Jan 17 21:19:40 2006
- * Ricardo Signes added as_basic_data() methods to turn the plist
+1.24 2006-01-17
+ - Ricardo Signes added as_basic_data() methods to turn the plist
stuff into a Perl data structure without all the plist
tracking. That's probably what most people want if they
simply want to get data.
-1.23 - Sun Jun 5 19:34:38 2005
- * Mike Ciul added some code to handle input differently for different
+1.23 2005-06-05
+ - Mike Ciul added some code to handle input differently for different
sources (file, string, etc). It's a lot faster for very large files.
- * Most everything else is the same, so unless you need to work with
+ - Most everything else is the same, so unless you need to work with
very large files, you don't need to rush to upgrade.
-1.21 - Fri Mar 11 22:49:28 2005
- * Added POD coverage tests
- * Bumped version past the 1.0 barrier
- * No code changes: no need to upgrade
-
-0.95 - Fri Mar 11 22:45:21 2005
- * Added POD coverage tests, fixed issues
- * no code changes: no need to upgrade
+1.21 2005-03-11
+ - Added POD coverage tests
+ - Bumped version past the 1.0 barrier
+ - No code changes: no need to upgrade
+
+0.95 2005-03-11
+ - Added POD coverage tests, fixed issues
+ - no code changes: no need to upgrade
-0.95 - Thu Dec 2 03:23:26 2004
- * added Exporter support so you can import the functions, just
+0.95 2004-12-02
+ - added Exporter support so you can import the functions, just
like the examples showed. Nothing is imported without you asking
for it.
-0.9 - Thu Sep 2 20:15:28 2004
- * fixed from with Time::HiRes tests
- * cleaned up distribution
- * No need to upgrade if you have the previous version (0.11)
+0.9 2004-09-02
+ - fixed from with Time::HiRes tests
+ - cleaned up distribution
+ - No need to upgrade if you have the previous version (0.11)
-0.51 - Tue Feb 3 16:39:39 2004
- * Refactored the module to get rid of goofy data structure—if you
+0.51 2004-02-03
+ - Refactored the module to get rid of goofy data structure—if you
peeked behind-the-scenes this will bite you
- * Each type in the plist now has its own class, with methods to affect it
+ - Each type in the plist now has its own class, with methods to affect
it
-0.11 - Sat Jan 31 11:24:53 CST 2004
- * No code changes.
- * Removed requirements on Test::Manifest and Test::Pod
- * Fixed warnings that show up under -w
-
-0.10 - Mon Feb 3 19:53:24 2003
- * No code changes
- * added missing modules to PREREQ_PM
- * tweaked false_key test
- * no need to upgrade from 0.09 if you already have it installed
+0.11 2004-01-31
+ - No code changes.
+ - Removed requirements on Test::Manifest and Test::Pod
+ - Fixed warnings that show up under -w
+
+0.10 2003-02-03
+ - No code changes
+ - added missing modules to PREREQ_PM
+ - tweaked false_key test
+ - no need to upgrade from 0.09 if you already have it installed
-0.09 - Fri Jan 31 11:20:53 2003
- * fixed bug in which a dict key named "0" would kill the program
+0.09 2003-01-31
+ - fixed bug in which a dict key named "0" would kill the program
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/INSTALL.SKIP
new/Mac-PropertyList-1.413/INSTALL.SKIP
--- old/Mac-PropertyList-1.41/INSTALL.SKIP 1970-01-01 01:00:00.000000000
+0100
+++ new/Mac-PropertyList-1.413/INSTALL.SKIP 2018-03-22 19:51:21.000000000
+0100
@@ -0,0 +1,6 @@
+README\.pod
+README.*
+
+# things that might be in local directories after fooling
+# around with them
+\.DS_Store
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/LICENSE
new/Mac-PropertyList-1.413/LICENSE
--- old/Mac-PropertyList-1.41/LICENSE 2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/LICENSE 2018-03-22 19:51:21.000000000 +0100
@@ -1 +1,177 @@
-You can use Mac::PropertyList under the same terms as Perl itself.
\ No newline at end of file
+The Mac::PropertyList module is licensed under the same terms as perl
+itself, under the Artistic License 2.0.
+
+
+Artistic License 2.0
+Copyright (c) 2000-2006, The Perl Foundation.
+http://www.perlfoundation.org/artistic_license_2_0
+
+Preamble
+
+This license establishes the terms under which a given free software
+Package may be copied, modified, distributed, and/or redistributed.
+The intent is that the Copyright Holder maintains some artistic
+control over the development of that Package while still keeping the
+Package available as open source and free software.
+
+You are always permitted to make arrangements wholly outside of this
+license directly with the Copyright Holder of a given Package. If the
+terms of this license do not permit the full use that you propose to
+make of the Package, you should contact the Copyright Holder and seek
+a different licensing arrangement.
+
+Definitions
+
+"Copyright Holder" means the individual(s) or organization(s) named in
+the copyright notice for the entire Package.
+
+"Contributor" means any party that has contributed code or other
+material to the Package, in accordance with the Copyright Holder's
+procedures.
+
+"You" and "your" means any person who would like to copy, distribute,
+or modify the Package.
+
+"Package" means the collection of files distributed by the Copyright
+Holder, and derivatives of that collection and/or of those files. A
+given Package may consist of either the Standard Version, or a
+Modified Version.
+
+"Distribute" means providing a copy of the Package or making it
+accessible to anyone else, or in the case of a company or
+organization, to others outside of your company or organization.
+
+"Distributor Fee" means any fee that you charge for Distributing this
+Package or providing support for this Package to another party. It
+does not mean licensing fees.
+
+"Standard Version" refers to the Package if it has not been modified,
+or has been modified only in ways explicitly requested by the
+Copyright Holder.
+
+"Modified Version" means the Package, if it has been changed, and such
+changes were not explicitly requested by the Copyright Holder.
+
+"Original License" means this Artistic License as Distributed with the
+Standard Version of the Package, in its current version or as it may
+be modified by The Perl Foundation in the future.
+
+"Source" form means the source code, documentation source, and
+configuration files for the Package.
+
+"Compiled" form means the compiled bytecode, object code, binary, or
+any other form resulting from mechanical transformation or translation
+of the Source form.
+
+Permission for Use and Modification Without Distribution
+
+(1) You are permitted to use the Standard Version and create and use
+Modified Versions for any purpose without restriction, provided that
+you do not Distribute the Modified Version.
+
+Permissions for Redistribution of the Standard Version
+
+(2) You may Distribute verbatim copies of the Source form of the
+Standard Version of this Package in any medium without restriction,
+either gratis or for a Distributor Fee, provided that you duplicate
+all of the original copyright notices and associated disclaimers. At
+your discretion, such verbatim copies may or may not include a
+Compiled form of the Package.
+
+(3) You may apply any bug fixes, portability changes, and other
+modifications made available from the Copyright Holder. The resulting
+Package will still be considered the Standard Version, and as such
+will be subject to the Original License.
+
+Distribution of Modified Versions of the Package as Source
+
+(4) You may Distribute your Modified Version as Source (either gratis
+or for a Distributor Fee, and with or without a Compiled form of the
+Modified Version) provided that you clearly document how it differs
+from the Standard Version, including, but not limited to, documenting
+any non-standard features, executables, or modules, and provided that
+you do at least ONE of the following:
+
+ (a) make the Modified Version available to the Copyright Holder of the
+ Standard Version, under the Original License, so that the Copyright
+ Holder may include your modifications in the Standard Version.
+
+ (b) ensure that installation of your Modified Version does not prevent
+ the user installing or running the Standard Version. In addition, the
+ Modified Version must bear a name that is different from the name of
+ the Standard Version.
+
+ (c) allow anyone who receives a copy of the Modified Version to make
+ the Source form of the Modified Version available to others under
+
+ (i) the Original License or
+
+ (ii) a license that permits the licensee to freely copy, modify
and
+ redistribute the Modified Version using the same licensing
terms that
+ apply to the copy that the licensee received, and requires that
the
+ Source form of the Modified Version, and of any works derived
from it,
+ be made freely available in that license fees are prohibited but
+ Distributor Fees are allowed.
+
+Distribution of Compiled Forms of the Standard Version or Modified
+Versions without the Source
+
+(5) You may Distribute Compiled forms of the Standard Version without
+the Source, provided that you include complete instructions on how to
+get the Source of the Standard Version. Such instructions must be
+valid at the time of your distribution. If these instructions, at any
+time while you are carrying out such distribution, become invalid, you
+must provide new instructions on demand or cease further distribution.
+If you provide valid instructions or cease distribution within thirty
+days after you become aware that the instructions are invalid, then
+you do not forfeit any of your rights under this license.
+
+(6) You may Distribute a Modified Version in Compiled form without the
+Source, provided that you comply with Section 4 with respect to the
+Source of the Modified Version.
+
+Aggregating or Linking the Package
+
+(7) You may aggregate the Package (either the Standard Version or
+Modified Version) with other packages and Distribute the resulting
+aggregation provided that you do not charge a licensing fee for the
+Package. Distributor Fees are permitted, and licensing fees for other
+components in the aggregation are permitted. The terms of this license
+apply to the use and Distribution of the Standard or Modified Versions
+as included in the aggregation.
+
+(8) You are permitted to link Modified and Standard Versions with
+other works, to embed the Package in a larger work of your own, or to
+build stand-alone binary or bytecode versions of applications that
+include the Package, and Distribute the result without restriction,
+provided the result does not expose a direct interface to the Package.
+
+Items That are Not Considered Part of a Modified Version
+
+(9) Works (including, but not limited to, modules and scripts) that
+merely extend or make use of the Package, do not, by themselves, cause
+the Package to be a Modified Version. In addition, such works are not
+considered parts of the Package itself, and are not subject to the
+terms of this license.
+
+General Provisions
+
+(10) Any use, modification, and distribution of the Standard or
+Modified Versions is governed by this Artistic License. By using,
+modifying or distributing the Package, you accept this license. Do not
+use, modify, or distribute the Package, if you do not accept this
+license.
+
+(11) If your Modified Version has been derived from a Modified Version
+made by someone other than you, you are nevertheless required to
+ensure that your Modified Version complies with the requirements of
+this license.
+
+(12) This license does not grant you the right to use any trademark,
+service mark, tradename, or logo of the Copyright Holder.
+
+(13) This license includes the non-exclusive, worldwide,
+free-of-charge patent license to make, have made, use, offer to sell,
+sell, import and otherwise transfer the Package with respect to any
+patent claims licensable by the Copyright Holder that are necessarily
+infringed by the Package. If you institute patent litigation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/MANIFEST
new/Mac-PropertyList-1.413/MANIFEST
--- old/Mac-PropertyList-1.41/MANIFEST 2014-09-12 12:16:24.000000000 +0200
+++ new/Mac-PropertyList-1.413/MANIFEST 2018-03-22 19:51:22.000000000 +0100
@@ -4,8 +4,7 @@
examples/convert_to_perl.pl
examples/plist-visitor.pl
examples/README
-hacks/plist-timer.pl
-hacks/plist.pl
+INSTALL.SKIP
lib/Mac/PropertyList.pm
lib/Mac/PropertyList/ReadBinary.pm
lib/Mac/PropertyList/WriteBinary.pm
@@ -19,8 +18,9 @@
plists/com.apple.iTunes.plist
plists/com.apple.systempreferences.plist
plists/com.unsanity.windowshadex.plist
+plists/comments.plist
plists/the_perl_review.abcdp
-README
+README.pod
t/array.t
t/as_perl.t
t/bad_plist.t
@@ -43,5 +43,6 @@
t/time.t
t/write.t
t/write_binary.t
+xt/changes.t
META.yml Module YAML meta-data (added by
MakeMaker)
META.json Module JSON meta-data (added by
MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/MANIFEST.SKIP
new/Mac-PropertyList-1.413/MANIFEST.SKIP
--- old/Mac-PropertyList-1.41/MANIFEST.SKIP 2014-09-12 12:16:22.000000000
+0200
+++ new/Mac-PropertyList-1.413/MANIFEST.SKIP 2018-03-22 19:51:21.000000000
+0100
@@ -57,9 +57,11 @@
^MYMETA\.
#!end included /usr/local/perls/perl-5.18.1/lib/5.18.1/ExtUtils/MANIFEST.SKIP
-
+hacks\b
\.travis\.yml
+\.appveyor\.yml
\.releaserc
\.lwpcookies
Mac-\.*
\.swp$
+\.patch$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/META.json
new/Mac-PropertyList-1.413/META.json
--- old/Mac-PropertyList-1.41/META.json 2014-09-12 12:16:23.000000000 +0200
+++ new/Mac-PropertyList-1.413/META.json 2018-03-22 19:51:22.000000000
+0100
@@ -4,9 +4,9 @@
"brian d foy <[email protected]>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.86, CPAN::Meta::Converter
version 2.120921",
+ "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter
version 2.150010",
"license" : [
- "perl_5"
+ "artistic_2"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
@@ -21,13 +21,12 @@
},
"prereqs" : {
"build" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
+ "requires" : {}
},
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "0"
+ "ExtUtils::MakeMaker" : "6.64",
+ "File::Spec::Functions" : "0"
}
},
"runtime" : {
@@ -37,26 +36,28 @@
"Scalar::Util" : "1.11",
"Time::Local" : "0",
"XML::Entities" : "0",
- "parent" : "0"
+ "parent" : "0",
+ "perl" : "5.010"
}
},
"test" : {
"requires" : {
- "Test::More" : "0"
+ "Test::More" : "0.94"
}
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "mailto" : "[email protected]",
- "web" :
"https://rt.cpan.org/Public/Dist/Display.html?Name=Mac-PropertyList"
+ "web" : "https://github.com/briandfoy/mac-propertylist/issues"
},
+ "homepage" : "https://github.com/briandfoy/mac-propertylist",
"repository" : {
"type" : "git",
- "url" : "git://github.com/briandfoy/mac-propertylist.git",
+ "url" : "https://github.com/briandfoy/mac-propertylist.git",
"web" : "https://github.com/briandfoy/mac-propertylist"
}
},
- "version" : "1.41"
+ "version" : "1.413",
+ "x_serialization_backend" : "JSON::PP version 2.27400_02"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/META.yml
new/Mac-PropertyList-1.413/META.yml
--- old/Mac-PropertyList-1.41/META.yml 2014-09-12 12:16:23.000000000 +0200
+++ new/Mac-PropertyList-1.413/META.yml 2018-03-22 19:51:22.000000000 +0100
@@ -3,29 +3,32 @@
author:
- 'brian d foy <[email protected]>'
build_requires:
- ExtUtils::MakeMaker: 0
- Test::More: 0
+ Test::More: '0.94'
configure_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: '6.64'
+ File::Spec::Functions: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.86, CPAN::Meta::Converter version
2.120921'
-license: perl
+generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version
2.150010'
+license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Mac-PropertyList
no_index:
directory:
- t
- inc
requires:
- MIME::Base64: 0
- Math::BigInt: 0
- Scalar::Util: 1.11
- Time::Local: 0
- XML::Entities: 0
- parent: 0
+ MIME::Base64: '0'
+ Math::BigInt: '0'
+ Scalar::Util: '1.11'
+ Time::Local: '0'
+ XML::Entities: '0'
+ parent: '0'
+ perl: '5.010'
resources:
- bugtracker:
https://rt.cpan.org/Public/Dist/Display.html?Name=Mac-PropertyList
- repository: git://github.com/briandfoy/mac-propertylist.git
-version: 1.41
+ bugtracker: https://github.com/briandfoy/mac-propertylist/issues
+ homepage: https://github.com/briandfoy/mac-propertylist
+ repository: https://github.com/briandfoy/mac-propertylist.git
+version: '1.413'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/Makefile.PL
new/Mac-PropertyList-1.413/Makefile.PL
--- old/Mac-PropertyList-1.41/Makefile.PL 2014-09-12 12:16:22.000000000
+0200
+++ new/Mac-PropertyList-1.413/Makefile.PL 2018-03-22 19:51:21.000000000
+0100
@@ -1,18 +1,70 @@
-use ExtUtils::MakeMaker 6.64;
+package Mac::PropertyList;
+use strict;
+use warnings;
-require 5.010;
+=encoding utf8
-eval "use Test::Manifest 1.21";
+=head1 The build file for Mac::PropertyList
-WriteMakefile
- (
- 'NAME' => 'Mac::PropertyList',
- 'ABSTRACT' => 'work with Mac plists at a low level',
- 'VERSION_FROM' => 'lib/Mac/PropertyList.pm',
- 'LICENSE' => 'perl',
- 'AUTHOR' => 'brian d foy <[email protected]>',
+This build file is a modulino; it works as both a build script and
+a module.
- 'PREREQ_PM' => {
+To build the distribution, run this file normally:
+
+ % perl Makefile.PL
+
+But, it's more interesting than that. You can load it with C<require>
+and call C<arguments> to get the data structure it passes to
+C<WriteMakefile>:
+
+ my $package = require '/path/to/Makefile.PL';
+ my $arguments = $package->arguments;
+
+Note that C<require>-ing a file makes an entry in C<%INC> for exactly
+that name. If you try to C<require> another file with the same name,
+even from a different path, C<require> thinks it has already loaded
+the file. As such, I recommend you always require the full path to the
+file.
+
+The return value of the C<require> is a package name (in this case,
+the name of the main module. Use that to call the C<arguments> method.
+
+Even if this distribution needs a higher version of Perl, this bit
+only needs v5.8. You can play with the data structure with a primitive
+Perl.
+
+=cut
+
+use File::Spec::Functions qw(catfile);
+
+my $module = __PACKAGE__;
+( my $dist = $module ) =~ s/::/-/g;
+
+my $github = 'https://github.com/briandfoy/mac-propertylist';
+my $main_file = catfile( 'lib', split /::/, "$module.pm" );
+
+my %WriteMakefile = (
+ 'MIN_PERL_VERSION' => '5.010',
+
+ 'NAME' => $module,
+ 'ABSTRACT_FROM' => $main_file,
+ 'VERSION_FROM' => $main_file,
+ 'LICENSE' => 'artistic2',
+ 'AUTHOR' => 'brian d foy <[email protected]>',
+
+ 'CONFIGURE_REQUIRES' => {
+ 'ExtUtils::MakeMaker' => '6.64',
+ 'File::Spec::Functions' => '0',
+ },
+
+ 'BUILD_REQUIRES' => {
+ },
+
+ 'TEST_REQUIRES' => {
+ 'Test::More' => '0.94',
+ },
+
+ 'PREREQ_PM' => {
'Math::BigInt' => '0',
'MIME::Base64' => '0',
'Time::Local' => '0',
@@ -21,26 +73,46 @@
'parent' => '0',
},
- 'TEST_REQUIRES' => {
- 'Test::More' => '0',
- },
-
- 'clean' => { FILES => 'Mac-PropertyList-*' },
-
'META_MERGE' => {
- "meta-spec" => { version => 2 },
+ 'meta-spec' => { version => 2 },
resources => {
repository => {
type => 'git',
- url =>
'git://github.com/briandfoy/mac-propertylist.git',
- web =>
'https://github.com/briandfoy/mac-propertylist',
+ url => "$github.git",
+ web => $github,
},
-
bugtracker => {
- web =>
'https://rt.cpan.org/Public/Dist/Display.html?Name=Mac-PropertyList',
- mailto => '[email protected]',
+ web => "$github/issues",
},
+ homepage => $github,
},
},
+
+ clean => { FILES => "$dist-*" },
);
+
+sub arguments { \%WriteMakefile }
+
+do_it() unless caller;
+sub do_it {
+ require File::Spec;
+ my $MM ='ExtUtils::MakeMaker';
+ my $MM_version =
+ eval{ "$MM " .
$WriteMakefile{'CONFIGURE_REQUIRES'}{'ExtUtils::MakeMaker'} }
+ ||
+ "$MM 6.64";
+ eval "use $MM_version; 1" or die "Could not load $MM_version: $@";
+ eval "use Test::Manifest 1.21"
+ if -e File::Spec->catfile( qw(t test_manifest) );
+
+ my $arguments = arguments();
+ my $minimum_perl = $arguments->{MIN_PERL_VERSION} || '5.008';
+ eval "require $minimum_perl;" or die $@;
+
+ WriteMakefile( %$arguments );
+ }
+
+
+no warnings;
+__PACKAGE__;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/README
new/Mac-PropertyList-1.413/README
--- old/Mac-PropertyList-1.41/README 2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-$Id$
-
-This module parses the property lists rom Mac OS X, at
-least the ones from the pre-Tiger releases. I wrote this
-module to work on all platforms, since I needed it to
-work on FreeBSD (which pulled files from my Mac machines
-to do various things). This means that the module can
-be very (very) slow for very large files. If someone would
-like to write stuff to hook into CoreFoundation and use
-the Mac OS X stuff to handle the parsing, I'll incorporate
-it into the module. I still need pure perl support though.
-
-You can install this using in the usual Perl fashion
-
- perl Makefile.PL
- make
- make test
- make install
-
-The documentation is in the module file. Once you install
-the file, you can read it with perldoc.
-
- perldoc Mac::PropertyList
-
-If you want to read it before you install it, you can use
-perldoc directly on the module file.
-
- perldoc lib/PropertyList.pm
-
-This module is also in CVS on SourceForge
-
- http://sourceforge.net/projects/brian-d-foy/
-
-In the hacks/ directory I have a couple of scripts. The
-plist-timer.pl script will parse the plist you give it and
-time it. You might want to try that first to see if you
-get acceptable performance.
-
-Enjoy,
-
-brian d foy, [email protected]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/README.pod
new/Mac-PropertyList-1.413/README.pod
--- old/Mac-PropertyList-1.41/README.pod 1970-01-01 01:00:00.000000000
+0100
+++ new/Mac-PropertyList-1.413/README.pod 2018-03-22 19:51:21.000000000
+0100
@@ -0,0 +1,126 @@
+=pod
+
+=encoding utf8
+
+=for HTML <a href="https://travis-ci.org/briandfoy/mac-propertylist"><img
src="https://travis-ci.org/briandfoy/mac-propertylist.svg?branch=master" /></a>
+
+=for HTML <a
href='https://ci.appveyor.com/project/briandfoy/mac-propertylist'><img
src='https://ci.appveyor.com/api/projects/status/6cqt6l1vxpjg6tif?svg=true'
/></a>
+
+=for HTML <a
href='https://coveralls.io/github/briandfoy/mac-propertylist?branch=master'><img
src='https://coveralls.io/repos/github/briandfoy/mac-propertylist/badge.svg?branch=master'
alt='Coverage Status' /></a>
+
+=for HTML <a
href="https://github.com/briandfoy/mac-propertylist/blob/master/LICENSE"><img
src="https://img.shields.io/cpan/l/Mac-PropertyList.svg" /></a>
+
+=for HTML <a href="http://www.metacpan.org/module/Mac::PropertyList"><img
src="https://img.shields.io/cpan/v/Mac-PropertyList.svg" /></A>
+
+=head1 The Mac::PropertyList module
+
+This is the I<README> for the L<Mac::PropertyList> Perl module. It handles
+the XML and binary property list formats (but not the JSON yet).
+
+You're probably looking at this because you don't know where else to
+find what you're looking for. Read this once and you might never have
+to read one again for any Perl module.
+
+=head2 Documentation
+
+To read about L<Mac::PropertyList>, look at the embedded documentation
+in the module itself. Inside the distribution, you can format it
+with L<perldoc|http://perldoc.perl.org/perldoc.html>:
+
+ % perldoc lib/Mac/PropertyList.pm
+
+If you have already installed the module, you can specify the module
+name instead of the file location:
+
+ % perldoc Mac::PropertyList
+
+You can read the documentation and inspect the meta data on one of the
+CPAN web interfaces, such as L<CPAN
Search|http://search.cpan.org/dist/Mac-PropertyList> or
+L<MetaCPAN|http://www.metacpan.org/module/Mac::PropertyList>:
+
+=over 4
+
+=item * L<http://search.cpan.org/dist/Mac-PropertyList>
+
+=item * L<http://www.metacpan.org/module/Mac::PropertyList>
+
+=back
+
+The standard module documentation has example uses in the SYNOPSIS
+section, but you can also look in the I<examples/> directory (if it's
+there), or look at the test files in I<t/>.
+
+=head2 Installation
+
+You can install this module with a CPAN client, which will resolve
+and install the dependencies:
+
+ % cpan Mac::PropertyList
+ % cpanm Mac::PropertyList
+
+You can also install directly from the distribution directory, which
+will also install the dependencies:
+
+ % cpan .
+ % cpanm .
+
+You could install just this module manually:
+
+ % perl Makefile.PL
+ % make
+ % make test
+ % make install
+
+You probably don't want to do that unless you're fiddling with the
+module and only want to run the tests without installing anything.
+
+=head2 Source location
+
+The meta data, such as the source repository and bug tracker, is in
+I<Makefile.PL> or the I<META.*> files it creates. You can find that on
+those CPAN web interfaces, but you can also look at files directly in
+the source repository:
+
+=over 4
+
+=item * L<https://github.com/briandfoy/mac-propertylist>
+
+=back
+
+If you find a problem, file a ticket in the L<issue
+tracker|https://github.com/briandfoy/mac-propertylist/issues>:
+
+=over 4
+
+=item * L<https://github.com/briandfoy/mac-propertylist/issues>
+
+=back
+
+=head2 Getting help
+
+Although I'm happy to hear from module users in private email,
+that's the best way for me to forget to do something.
+
+Besides the issue trackers, you can find help at
+L<Perlmonks|http://www.perlmonks.org> or
+L<Stackoverflow|http://www.stackoverflow.com>, both of which have many
+competent Perlers who can answer your question, almost in real time.
+They might not know the particulars of this module, but they can help
+you diagnose your problem.
+
+You might like to read L<brian's Guide to Solving Any Perl
+Problem|http://archive.oreilly.com/pub/a/perl/excerpts/9780596527242/brians-guide.html>.
+
+=head2 Copyright and License
+
+You should have received a I<LICENSE> file, but the license is also noted
+in the module files. About the only thing you can't do is pretend that
+you wrote code that you didn't.
+
+=head2 Good luck!
+
+Enjoy,
+
+brian d foy, [email protected]
+
+=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/hacks/plist-timer.pl
new/Mac-PropertyList-1.413/hacks/plist-timer.pl
--- old/Mac-PropertyList-1.41/hacks/plist-timer.pl 2014-09-12
12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/hacks/plist-timer.pl 1970-01-01
01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-# $Id$
-
-use Mac::PropertyList;
-use Time::HiRes;
-
-printf "%10s %10s %10s %s\n",
- "Bytes", "Seconds", "bytes / sec ", "File";
-
-foreach my $file ( @ARGV )
- {
- unless( open FILE, $file )
- {
- warn( "Could not open $file" );
- next;
- }
-
- my $data = do { local $/; <FILE> };
- close FILE;
-
- my $b = length $data;
-
- my $time1 = [ Time::HiRes::gettimeofday() ];
- my $plist = Mac::PropertyList::parse_plist( $data );
- my $time2 = [ Time::HiRes::gettimeofday() ];
-
- my $elapsed = Time::HiRes::tv_interval( $time1, $time2 );
- printf "%10d %10.4f %10.0f %s\n", $b, $elapsed,
- eval { $b / $elapsed }, $file;
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/hacks/plist.pl
new/Mac-PropertyList-1.413/hacks/plist.pl
--- old/Mac-PropertyList-1.41/hacks/plist.pl 2014-09-12 12:16:22.000000000
+0200
+++ new/Mac-PropertyList-1.413/hacks/plist.pl 1970-01-01 01:00:00.000000000
+0100
@@ -1,56 +0,0 @@
-#!/usr/bin/perl
-
-=head1 NAME
-
-plist.pl - test Mac::PropertyList by parsing found plist files
-
-=head1 SYNOPSIS
-
-% plist.pl directory
-
-=head1 DESCRIPTION
-
-This script finds Mac plist files under the specified directory
-(or the current working directory if none specified) and attempts
-to parse them with Mac::PropertyList. If that doesn't work, it
-reports an error.
-
-I use this to find special cases that Mac::PropertyList can't
-handle.
-
-=head1 AUTHOR
-
-brian d foy, E<lt>[email protected]<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2002, brian d foy, All Rights Reserved
-
-=cut
-
-use Cwd;
-use File::Find::Rule;
-use Mac::PropertyList;
-
-my $dir = $ARGV[0] || cwd;
-
-@files = File::Find::Rule->file()->name( '*.plist' )->in( $dir );
-
-foreach my $file ( @files )
- {
- my $name = $file;
- $name =~ s|^\Q$dir|--|;
-
- print STDERR "Processing $name...";
-
- eval {
- alarm 5;
- local @ARGV = ( $file );
- my $data = do { local $/; <> };
- local $SIG{ALRM} = sub { die "skipping\n" };
- my $plist = Mac::PropertyList::parse_plist( $data );
- alarm 0;
- print STDERR "done\n";
- };
- print STDERR $@;
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Mac-PropertyList-1.41/lib/Mac/PropertyList/ReadBinary.pm
new/Mac-PropertyList-1.413/lib/Mac/PropertyList/ReadBinary.pm
--- old/Mac-PropertyList-1.41/lib/Mac/PropertyList/ReadBinary.pm
2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/lib/Mac/PropertyList/ReadBinary.pm
2018-03-22 19:51:21.000000000 +0100
@@ -13,7 +13,7 @@
use POSIX qw(SEEK_END SEEK_SET);
use XML::Entities ();
-$VERSION = '1.41';
+$VERSION = '1.413';
__PACKAGE__->_run( @ARGV ) unless caller;
@@ -199,7 +199,7 @@
my( $self, $length ) = @_;
return $singletons{ $length } if exists $singletons{ $length };
-
+
croak ( sprintf "Unknown type byte %02X\n", $length );
},
@@ -392,10 +392,10 @@
=head1 COPYRIGHT AND LICENSE
-Copyright © 2004-2014 brian d foy. All rights reserved.
+Copyright © 2004-2018, brian d foy <[email protected]>. All rights reserved.
This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
+it under the terms of the Artistic License 2.0.
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Mac-PropertyList-1.41/lib/Mac/PropertyList/WriteBinary.pm
new/Mac-PropertyList-1.413/lib/Mac/PropertyList/WriteBinary.pm
--- old/Mac-PropertyList-1.41/lib/Mac/PropertyList/WriteBinary.pm
2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/lib/Mac/PropertyList/WriteBinary.pm
2018-03-22 19:51:21.000000000 +0100
@@ -6,7 +6,7 @@
use Encode ();
use Mac::PropertyList ();
-use base qw(Exporter);
+use Exporter qw(import);
=encoding utf8
@@ -101,7 +101,7 @@
havePack64 => ( eval { pack('Q>', 1153202979583557643) eq
"\x10\x01\0\0\0\0\0\x0B" } ? 1 : 0 ),
};
-$VERSION = '1.41';
+$VERSION = '1.413';
@EXPORT_OK = qw( as_string );
sub as_string {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/lib/Mac/PropertyList.pm
new/Mac-PropertyList-1.413/lib/Mac/PropertyList.pm
--- old/Mac-PropertyList-1.41/lib/Mac/PropertyList.pm 2014-09-12
12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/lib/Mac/PropertyList.pm 2018-03-22
19:51:21.000000000 +0100
@@ -9,7 +9,7 @@
use Data::Dumper;
use XML::Entities;
-use parent qw(Exporter);
+use Exporter qw(import);
@EXPORT_OK = qw(
parse_plist
@@ -24,7 +24,7 @@
'all' => \@EXPORT_OK,
);
-$VERSION = '1.41';
+$VERSION = '1.413';
=encoding utf8
@@ -59,9 +59,10 @@
=head1 DESCRIPTION
This module is a low-level interface to the Mac OS X Property List
-(plist) format. You probably shouldn't use this in applications–build
-interfaces on top of this so you don't have to put all the heinous
-multi-level object stuff where people have to look at it.
+(plist) format in either XML or binary. You probably shouldn't use
+this in applications–build interfaces on top of this so you don't have
+to put all the heinous multi-level object stuff where people have to
+look at it.
You can parse a plist file and get back a data structure. You can take
that data structure and get back the plist as XML. If you want to
@@ -70,6 +71,14 @@
You don't need to be on Mac OS X to use this. It simply parses and
manipulates a text format that Mac OS X uses.
+If you need to work with the old ASCII or newer JSON formet, you can
+use the B<plutil> tool that comes with MacOS X:
+
+ % plutil -convert xml1 -o ExampleBinary.xml.plist ExampleBinary.plist
+
+Or, you can extend this module to handle those formats (and send a pull
+request).
+
=head2 The Property List format
The MacOS X Property List format is simple XML. You can read the DTD
@@ -160,7 +169,6 @@
"date" => \&read_date,
"real" => \&read_real,
"integer" => \&read_integer,
- "string" => \&read_string,
"array" => \&read_array,
"data" => \&read_data,
"true" => \&read_true,
@@ -194,6 +202,7 @@
my $plist = do {
if( $text =~ /\A<\?xml/ ) { # XML plists
+ $text =~ s/<!--(?:[\d\D]*?)-->//g;
# we can handle either 0.9 or 1.0
$text =~ s|^<\?xml.*?>\s*<!DOC.*>\s*<plist.*?>\s*||;
$text =~ s|\s*</plist>\s*$||;
@@ -373,12 +382,15 @@
while( not defined $value ) {
croak "Couldn't read anything!" if $source->eof;
$_ .= $source->get_line;
-
- if( s[^\s* < (string|date|real|integer|data) >
- \s*(.*?)\s* </\1> ][]sx ) {
+ if( s[^\s* < (string|date|real|integer|data) > \s*(.*?)\s*
</\1> ][]sx ) {
$value = $Readers{$1}->( $2 );
}
elsif( s[^\s* < (dict|array) > ][]x ) {
+ # We need to put back the unprocessed text if
+ # any because the <dict> and <array> readers
+ # need to see it.
+ $source->put_line( $_ ) if defined $_ && '' ne $_;
+ $_ = '';
$value = $Readers{$1}->( $source );
}
# these next two are some wierd cases i found in the iPhoto Prefs
@@ -502,13 +514,34 @@
sub get_line {
my $self = CORE::shift;
+# I'm not particularly happy with what I wrote here, but that's why
+# you shouldn't write your own buffering code! I might have left over
+# text in the buffer. This could be stuff a higher level looked at and
+# put back with put_line. If there's text there, grab that.
+#
+# But here's the tricky part. If that next part of the text looks like
+# a "blank" line, grab the next next thing and append that.
+#
+# And, if there's nothing in the buffer, ask for more text from
+# get_source_line. Follow the same rules. IF you get back something that
+# looks like a blank line, ask for another and append it.
+#
+# This means that a returned line might have come partially from the
+# buffer and partially from a fresh read.
+#
+# At some point you should have something that doesn't look like a
+# blank line and the while() will break out. Return what you do.
+#
+# Previously, I wasn't appending to $_ so newlines were disappearing
+# as each next read replaced the value in $_. Yuck.
+
local $_ = '';
while (defined $_ && /^[\r\n\s]*$/) {
if( @{$self->{buffer}} ) {
- $_ = shift @{$self->{buffer}};
+ $_ .= shift @{$self->{buffer}};
}
else {
- $_ = $self->get_source_line;
+ $_ .= $self->get_source_line;
}
}
@@ -554,8 +587,6 @@
sub type { my $r = ref $_[0] ? ref $_[0] : $_[0]; $r =~ s/.*:://; $r; }
sub new {
- #print STDERR "Got [@_]\n";
-
bless $_[1], $_[0]
}
@@ -649,8 +680,6 @@
use base qw(Mac::PropertyList::Container);
sub new {
- #print STDERR Data::Dumper::Dumper( $_[1] );
-
$_[0]->SUPER::new( $_[1] );
}
@@ -840,10 +869,10 @@
=head1 COPYRIGHT AND LICENSE
-Copyright © 2004-2014 brian d foy. All rights reserved.
+Copyright © 2004-2018, brian d foy <[email protected]>. All rights reserved.
This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
+it under the terms of the Artistic License 2.0.
=head1 SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/plists/comments.plist
new/Mac-PropertyList-1.413/plists/comments.plist
--- old/Mac-PropertyList-1.41/plists/comments.plist 1970-01-01
01:00:00.000000000 +0100
+++ new/Mac-PropertyList-1.413/plists/comments.plist 2018-03-22
19:51:21.000000000 +0100
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<!-- This is an above root level comment -->
+<plist version="0.9">
+<!-- This is a below root level comment -->
+<dict><!-- This is a below dict level comment -->
+ <key>NSColorPanelMode</key>
+ <string>5</string>
+<!-- This is a below dict level comment -->
+ <key>NSDefaultOpenDirectory</key>
+ <string>/Applications/Mozilla</string>
+ <key>NSToolbar Configuration com.apple.PrefsToolbar</key>
+ <dict>
+ <key>TB Display Mode</key>
+ <integer>1</integer>
+ <key>TB Is Shown</key>
+ <integer>1</integer>
+ <key>TB Item Identifiers</key>
+ <array><!-- 1. This is a below array level comment -->
+ <string>com.apple.prefpane.showall</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>com.apple.preference.displays</string>
+ <string>com.apple.preference.sound</string>
+ <string>com.apple.preference.network</string>
+ <string>com.apple.preference.startupdisk</string>
+ <!-- 2. This is a below array level comment -->
+ </array>
+ <key>TB Size Mode</key>
+ <integer>1</integer>
+ </dict>
+ <key>NSWindow Frame NSColorPanel</key>
+ <string>3 379 205 367 0 0 1024 746 </string>
+ <key>NSWindow Frame Speech Help</key>
+ <string>233 717 444 389 0 0 1024 746 </string>
+</dict>
+</plist>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/t/array.t
new/Mac-PropertyList-1.413/t/array.t
--- old/Mac-PropertyList-1.41/t/array.t 2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/t/array.t 2018-03-22 19:51:21.000000000
+0100
@@ -1,4 +1,4 @@
-use Test::More tests => 5;
+use Test::More tests => 8;
use Mac::PropertyList;
@@ -31,3 +31,18 @@
ok( eq_array( \@values, [qw(Mimi Roscoe Juliet Buster)] ),
"Object has right values" );
+note 'Try non-canonical layout';
+$plist = Mac::PropertyList::parse_plist( <<"HERE" );
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array><string>Athos</string><string>Porthos</string><string>Aramis</string></array>
+</array>
+</plist>
+HERE
+isa_ok( $plist, "Mac::PropertyList::array", "Make object from non-canonical
plist string" );
+is( $plist->count, 3, "Non-canonical object has right number of values" );
+
+@values = $plist->values();
+ok( eq_array( \@values, [ qw{ Athos Porthos Aramis } ] ),
+ "Non-canonical object has right values" );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/t/basic_types.t
new/Mac-PropertyList-1.413/t/basic_types.t
--- old/Mac-PropertyList-1.41/t/basic_types.t 2014-09-12 12:16:22.000000000
+0200
+++ new/Mac-PropertyList-1.413/t/basic_types.t 2018-03-22 19:51:21.000000000
+0100
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 5;
+use Test::More tests => 6;
use Mac::PropertyList;
my $array = <<'HERE';
@@ -107,3 +107,21 @@
59,
"basic data from a scalar",
);
+
+my $string = <<'HERE';
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <string>A
+
+ new line</string>
+</plist>
+HERE
+
+is_deeply(
+ Mac::PropertyList::parse_plist($string)->as_basic_data,
+ "A
+
+ new line",
+ "basic data from a string with embedded new lines",
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/t/dict.t
new/Mac-PropertyList-1.413/t/dict.t
--- old/Mac-PropertyList-1.41/t/dict.t 2014-09-12 12:16:22.000000000 +0200
+++ new/Mac-PropertyList-1.413/t/dict.t 2018-03-22 19:51:21.000000000 +0100
@@ -1,4 +1,4 @@
-use Test::More tests => 15;
+use Test::More tests => 21;
use Mac::PropertyList;
@@ -47,4 +47,24 @@
ok( $plist->exists( 'Buster' ), 'Buster key exists after delete' );
is( $plist->count, 1, "Has right count after delete" );
+note 'Try non-canonical layout';
+$plist = Mac::PropertyList::parse_plist( <<"HERE" );
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict><key>Clayton</key><string>John</string><key>Napier</key><string>Carson</string><key>Gridley</key><string>Jason</string></dict>
+</plist>
+HERE
+isa_ok( $plist, 'Mac::PropertyList::dict' );
+is( $plist->count, 3, "Has right number of keys" );
+
+@keys = sort $plist->keys;
+ok( eq_array( \@keys, [qw(Clayton Gridley Napier)] ), "Check hash keys" );
+
+@values = sort $plist->values;
+ok( eq_array( \@values, [qw(Carson Jason John)] ), "Check hash values" );
+
+ok( $plist->exists( 'Clayton' ), 'Claytin key exists' );
+
+is( $plist->value( 'Clayton' ), 'John', "Check Clayton's value" );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/t/read_binary.t
new/Mac-PropertyList-1.413/t/read_binary.t
--- old/Mac-PropertyList-1.41/t/read_binary.t 2014-09-12 12:16:22.000000000
+0200
+++ new/Mac-PropertyList-1.413/t/read_binary.t 2018-03-22 19:51:21.000000000
+0100
@@ -2,6 +2,11 @@
use warnings;
use utf8;
+BEGIN {
+ # Silence 'wide character' warning in Unicode test
+ binmode STDOUT, ':encoding(utf-8)';
+}
+
use Test::More tests => 41;
use File::Spec::Functions;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mac-PropertyList-1.41/xt/changes.t
new/Mac-PropertyList-1.413/xt/changes.t
--- old/Mac-PropertyList-1.41/xt/changes.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Mac-PropertyList-1.413/xt/changes.t 2018-03-22 19:51:21.000000000
+0100
@@ -0,0 +1,4 @@
+use Test::More;
+eval 'use Test::CPAN::Changes';
+plan skip_all => 'Test::CPAN::Changes required for this test' if $@;
+changes_ok();
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#description: |-
# override description from CPAN
#summary: override summary from CPAN
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_build: |-
# rm unused.files
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module