Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-Mac-PropertyList for 
openSUSE:Factory checked in at 2024-07-29 21:53:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mac-PropertyList (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mac-PropertyList.new.1882 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mac-PropertyList"

Mon Jul 29 21:53:36 2024 rev:22 rq:1190270 version:1.601.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Mac-PropertyList/perl-Mac-PropertyList.changes  
    2022-07-14 16:34:36.156647011 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Mac-PropertyList.new.1882/perl-Mac-PropertyList.changes
    2024-07-29 21:54:48.442598409 +0200
@@ -1,0 +2,18 @@
+Sat Jul 27 05:29:09 UTC 2024 - Tina Müller <timueller+p...@suse.de>
+
+- updated to 1.601.0 (1.601)
+   see /usr/share/doc/packages/perl-Mac-PropertyList/Changes
+
+  1.601 2024-07-27T00:58:50Z
+       * changed default DTD header to use "Apple" instead of "Apple Computer"
+       to match what XCode has been doing (Apple changed it's name in 2007).
+       (GitHub #27).
+
+  1.505 2024-07-14T17:52:31Z
+       * Don't read binary files in text mode, which has problems on Windows
+       (from joz-k, GitHub #26)
+       * Fix problem with negative integers in WriteBinary. They should
+       always be longs.
+       * First release to use GitHub Attestations (see README.pod)
+
+-------------------------------------------------------------------

Old:
----
  Mac-PropertyList-1.504.tar.gz

New:
----
  Mac-PropertyList-1.601.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Mac-PropertyList.spec ++++++
--- /var/tmp/diff_new_pack.ToN2sG/_old  2024-07-29 21:54:48.866615581 +0200
+++ /var/tmp/diff_new_pack.ToN2sG/_new  2024-07-29 21:54:48.870615742 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Mac-PropertyList
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,12 +18,14 @@
 
 %define cpan_name Mac-PropertyList
 Name:           perl-Mac-PropertyList
-Version:        1.504
+Version:        1.601.0
 Release:        0
+# 1.601 -> normalize -> 1.601.0
+%define cpan_version 1.601
 License:        Artistic-2.0
 Summary:        Work with Mac plists at a low level
 URL:            https://metacpan.org/release/%{cpan_name}
-Source0:        
https://cpan.metacpan.org/authors/id/B/BD/BDFOY/%{cpan_name}-%{version}.tar.gz
+Source0:        
https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/%{cpan_name}-%{cpan_version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch
 BuildRequires:  perl
@@ -34,6 +36,28 @@
 BuildRequires:  perl(parent)
 Requires:       perl(XML::Entities)
 Requires:       perl(parent)
+Provides:       perl(Mac::PropertyList) = %{version}
+Provides:       perl(Mac::PropertyList::Boolean)
+Provides:       perl(Mac::PropertyList::Container)
+Provides:       perl(Mac::PropertyList::Item)
+Provides:       perl(Mac::PropertyList::LineListSource)
+Provides:       perl(Mac::PropertyList::ReadBinary) = 1.505.0
+Provides:       perl(Mac::PropertyList::Scalar)
+Provides:       perl(Mac::PropertyList::Source)
+Provides:       perl(Mac::PropertyList::TextSource)
+Provides:       perl(Mac::PropertyList::WriteBinary) = 1.505.0
+Provides:       perl(Mac::PropertyList::array)
+Provides:       perl(Mac::PropertyList::data)
+Provides:       perl(Mac::PropertyList::date)
+Provides:       perl(Mac::PropertyList::dict)
+Provides:       perl(Mac::PropertyList::false)
+Provides:       perl(Mac::PropertyList::integer)
+Provides:       perl(Mac::PropertyList::real)
+Provides:       perl(Mac::PropertyList::string)
+Provides:       perl(Mac::PropertyList::true)
+Provides:       perl(Mac::PropertyList::uid)
+Provides:       perl(Mac::PropertyList::ustring)
+%undefine       __perllib_provides
 %{perl_requires}
 
 %description
@@ -58,7 +82,7 @@
 request).
 
 %prep
-%autosetup  -n %{cpan_name}-%{version}
+%autosetup  -n %{cpan_name}-%{cpan_version}
 
 %build
 perl Makefile.PL INSTALLDIRS=vendor

++++++ Mac-PropertyList-1.504.tar.gz -> Mac-PropertyList-1.601.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/CITATION.cff 
new/Mac-PropertyList-1.601/CITATION.cff
--- old/Mac-PropertyList-1.504/CITATION.cff     2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/CITATION.cff     2024-07-27 03:00:29.000000000 
+0200
@@ -4,7 +4,7 @@
 abstract: Mac::PropertyList - work with Mac plists at a low level
 authors:
 - alias: briandfoy
-  email: bd...@cpan.org
+  email: briand...@pobox.com
   family-names: foy
   given-names: brian d
   orcid: 0000-0002-0283-8283
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/Changes 
new/Mac-PropertyList-1.601/Changes
--- old/Mac-PropertyList-1.504/Changes  2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/Changes  2024-07-27 03:00:29.000000000 +0200
@@ -1,5 +1,17 @@
 Revision history for Perl module Mac::PropertyList
 
+1.601 2024-07-27T00:58:50Z
+       * changed default DTD header to use "Apple" instead of "Apple Computer"
+       to match what XCode has been doing (Apple changed it's name in 2007).
+       (GitHub #27).
+
+1.505 2024-07-14T17:52:31Z
+       * Don't read binary files in text mode, which has problems on Windows
+       (from joz-k, GitHub #26)
+       * Fix problem with negative integers in WriteBinary. They should
+       always be longs.
+       * First release to use GitHub Attestations (see README.pod)
+
 1.504 2022-07-08T03:16:18Z
        * @trwyant fixed some stray debugging output (#14 and #15)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/MANIFEST 
new/Mac-PropertyList-1.601/MANIFEST
--- old/Mac-PropertyList-1.504/MANIFEST 2022-07-08 05:18:00.000000000 +0200
+++ new/Mac-PropertyList-1.601/MANIFEST 2024-07-27 03:00:30.000000000 +0200
@@ -2,6 +2,7 @@
 CITATION.cff
 DTDs/PropertyList-0.9.dtd
 DTDs/PropertyList-1.0.dtd
+examples/binary_to_perl.pl
 examples/convert_to_perl.pl
 examples/plist-visitor.pl
 examples/README
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/MANIFEST.SKIP 
new/Mac-PropertyList-1.601/MANIFEST.SKIP
--- old/Mac-PropertyList-1.504/MANIFEST.SKIP    2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/MANIFEST.SKIP    2024-07-27 03:00:29.000000000 
+0200
@@ -73,3 +73,5 @@
 \.icloud$
 \A\.github\b
 
+\.gitattributes\b
+\Ascratch\b
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/META.json 
new/Mac-PropertyList-1.601/META.json
--- old/Mac-PropertyList-1.504/META.json        2022-07-08 05:18:00.000000000 
+0200
+++ new/Mac-PropertyList-1.601/META.json        2024-07-27 03:00:30.000000000 
+0200
@@ -1,10 +1,10 @@
 {
    "abstract" : "work with Mac plists at a low level",
    "author" : [
-      "brian d foy <bd...@cpan.org>"
+      "brian d foy <briand...@pobox.com>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter 
version 2.150010",
+   "generated_by" : "ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "artistic_2"
    ],
@@ -54,10 +54,10 @@
       "homepage" : "https://github.com/briandfoy/mac-propertylist";,
       "repository" : {
          "type" : "git",
-         "url" : "https://github.com/briandfoy/mac-propertylist.git";,
+         "url" : "https://github.com/briandfoy/mac-propertylist";,
          "web" : "https://github.com/briandfoy/mac-propertylist";
       }
    },
-   "version" : "1.504",
-   "x_serialization_backend" : "JSON::PP version 4.07"
+   "version" : "1.601",
+   "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/META.yml 
new/Mac-PropertyList-1.601/META.yml
--- old/Mac-PropertyList-1.504/META.yml 2022-07-08 05:18:00.000000000 +0200
+++ new/Mac-PropertyList-1.601/META.yml 2024-07-27 03:00:29.000000000 +0200
@@ -1,14 +1,14 @@
 ---
 abstract: 'work with Mac plists at a low level'
 author:
-  - 'brian d foy <bd...@cpan.org>'
+  - 'brian d foy <briand...@pobox.com>'
 build_requires:
   Test::More: '1'
 configure_requires:
   ExtUtils::MakeMaker: '6.64'
   File::Spec::Functions: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 
2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 
2.150010'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -29,6 +29,6 @@
 resources:
   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.504'
+  repository: https://github.com/briandfoy/mac-propertylist
+version: '1.601'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/Makefile.PL 
new/Mac-PropertyList-1.601/Makefile.PL
--- old/Mac-PropertyList-1.504/Makefile.PL      2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/Makefile.PL      2024-07-27 03:00:29.000000000 
+0200
@@ -50,7 +50,7 @@
        'ABSTRACT_FROM' => $main_file,
        'VERSION_FROM'  => $main_file,
        'LICENSE'       => 'artistic_2',
-       'AUTHOR'        => 'brian d foy <bd...@cpan.org>',
+       'AUTHOR'        => 'brian d foy <briand...@pobox.com>',
 
        'CONFIGURE_REQUIRES' => {
                'ExtUtils::MakeMaker'   => '6.64',
@@ -78,7 +78,7 @@
                resources => {
                        repository => {
                                type => 'git',
-                               url  => "$github.git",
+                               url  => $github,
                                web  => $github,
                                },
                        bugtracker => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/README.pod 
new/Mac-PropertyList-1.601/README.pod
--- old/Mac-PropertyList-1.504/README.pod       2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/README.pod       2024-07-27 03:00:29.000000000 
+0200
@@ -74,22 +74,22 @@
 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
+the source repository: L<https://github.com/briandfoy/mac-propertylist>
 
 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>
+tracker|https://github.com/briandfoy/mac-propertylist/issues>.
 
-=back
+Starting with v1.505, Mac::PropertyList now uses
+L<GitHub 
Attestations|https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/>,
+which allow you to verify that the archive file you have was made from
+the official repo.
+
+You need a GitHub account and the L<gh tool|https://github.com/larsks/ghcli>.
+
+       # download the distro file from GitHub, MetaCPAN, or a CPAN mirror
+       $ gh auth login
+       ...follow instructions...
+       $ gh attestation verify Mac-PropertyList-1.505.tar.gz --owner briandfoy
 
 =head2 Getting help
 
@@ -116,6 +116,6 @@
 
 Enjoy,
 
-brian d foy, bd...@cpan.org
+brian d foy, briand...@pobox.com
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/examples/binary_to_perl.pl 
new/Mac-PropertyList-1.601/examples/binary_to_perl.pl
--- old/Mac-PropertyList-1.504/examples/binary_to_perl.pl       1970-01-01 
01:00:00.000000000 +0100
+++ new/Mac-PropertyList-1.601/examples/binary_to_perl.pl       2024-07-27 
03:00:29.000000000 +0200
@@ -0,0 +1,18 @@
+#!/usr/local/bin/perl
+use warnings;
+use strict;
+use v5.10;
+
+use Data::Dumper;
+use Mac::PropertyList qw(parse_plist_file);
+
+use Mac::PropertyList;
+
+my $data = do {
+       open my $fh, '<:raw', $ARGV[0];
+       sysread $fh, my $rec, -s $fh;
+       };
+
+my $plist = parse_plist_file( $ARGV[0] );
+
+say Dumper( $plist );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/examples/convert_to_perl.pl 
new/Mac-PropertyList-1.601/examples/convert_to_perl.pl
--- old/Mac-PropertyList-1.504/examples/convert_to_perl.pl      2022-07-08 
05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/examples/convert_to_perl.pl      2024-07-27 
03:00:29.000000000 +0200
@@ -4,8 +4,6 @@
 
 use Data::Dumper;
 use Mac::PropertyList qw(parse_plist);
-use JSON::Any;
-use Storable qw(dclone);
 
 my $data = do { local $/; <DATA> };
 my $plist = parse_plist( $data );
@@ -25,11 +23,11 @@
 print Dumper( $ds );
 
 
-BEGIN { 
-       package Mac::PropertyList::dict; 
-       
+BEGIN {
+       package Mac::PropertyList::dict;
+
        use overload
-               '""' => sub { 
+               '""' => sub {
                        my $s = "{\n";
                        foreach my $key ( $_[0]->keys )
                                {
@@ -39,11 +37,11 @@
                        $s .= "\t}";
                        $s;
                        };
-       
-       package Mac::PropertyList::array; 
-       
+
+       package Mac::PropertyList::array;
+
        use overload
-               '""' => sub { 
+               '""' => sub {
                        my $s = "[\n";
                        foreach my $value ( $_[0]->value )
                                {
@@ -53,13 +51,13 @@
                        $s;
                        };
 
-       package Mac::PropertyList::Scalar; 
-       
+       package Mac::PropertyList::Scalar;
+
        use overload
-               '""' => sub { 
+               '""' => sub {
                        "'" . $_[0]->value . "'";
                        };
-       
+
        }
 
 __END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mac-PropertyList-1.504/lib/Mac/PropertyList/ReadBinary.pm 
new/Mac-PropertyList-1.601/lib/Mac/PropertyList/ReadBinary.pm
--- old/Mac-PropertyList-1.504/lib/Mac/PropertyList/ReadBinary.pm       
2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/lib/Mac/PropertyList/ReadBinary.pm       
2024-07-27 03:00:29.000000000 +0200
@@ -9,11 +9,9 @@
 use Encode            qw(decode);
 use Mac::PropertyList;
 use Math::BigInt;
-use MIME::Base64      qw(decode_base64);
 use POSIX             qw(SEEK_END SEEK_SET);
-use XML::Entities     ();
 
-our $VERSION = '1.504';
+our $VERSION = '1.505';
 
 my $Debug = $ENV{PLIST_DEBUG} || 0;
 
@@ -140,6 +138,8 @@
        @hash{ qw( offset_size ref_size object_count top_object table_offset ) }
                = unpack "x6 C C (x4 N)3", $buffer;
 
+       print Dumper( \%hash );
+
        $self->{trailer} = \%hash;
        }
 
@@ -167,8 +167,6 @@
 sub _read_object_at_offset {
        my( $self, $offset ) = @_;
 
-       my @caller = caller(1);
-
     seek $self->_fh, ${ $self->_offsets }[$offset], SEEK_SET;
 
     $self->_read_object;
@@ -199,19 +197,19 @@
        },
 
        1 => sub { # integers
-               my( $self, $power2 ) = @_;
+               my( $self, $power_of_2 ) = @_;
 
-               croak "Integer with <$power2> bytes is not supported" if 
$power2 > 3;
+               croak "Integer with <$power_of_2> bytes is not supported" if 
$power_of_2 > 4;
 
-               my $byte_length = 1 << $power2;
+               my $byte_length = 1 << $power_of_2;
 
                my( $buffer, $value );
                read $self->_fh, $buffer, $byte_length;
 
                my @formats = qw( C n N NN NNNN );
-               my @values = unpack $formats[$power2], $buffer;
+               my @values = unpack $formats[$power_of_2], $buffer;
 
-               if( $power2 == 3 ) {
+               if( $power_of_2 == 3 ) { # 64 bits
                        my( $high, $low ) = @values;
 
                        my $b = Math::BigInt->new($high)->blsft(32)->bior($low);
@@ -221,7 +219,9 @@
 
                        @values = ( $b );
                        }
-               elsif( $power2 == 4 ) {
+               elsif( $power_of_2 == 4 ) { # 128 bits
+                   # 128 bits aren't part of the public API, but apparently
+                   # they are out there.
                        my( $highest, $higher, $high, $low ) = @values;
                        my $b = Math::BigInt
                                ->new($highest)
@@ -368,25 +368,21 @@
 
 sub _read_object {
        my $self = shift;
-    say "Reading object!" if $Debug;
     my $buffer;
-    say "\tTELL: ", tell( $self->_fh ) if $Debug;
+
     croak "read() failed while trying to get type byte! $!"
        unless read( $self->_fh, $buffer, 1) == 1;
 
     my $length = unpack( "C*", $buffer ) & 0x0F;
-    say "\tlength is $length" if $Debug;
     $buffer    = unpack "H*", $buffer;
-    say "\t", join '', map { sprintf '%02x', ord } split //, $buffer if $Debug;
     my $type   = substr $buffer, 0, 1;
-    say "\ttype is $type" if $Debug;
 
        $length = $self->_read_object->value if $type ne "0" && $length == 15;
 
        my $sub = $type_readers->{ $type };
        my $result = eval { $sub->( $self, $length ) };
        croak "$@" if $@;
-    say "RESULT: ", Dumper($result) if $Debug;
+
     return $result;
        }
 
@@ -410,13 +406,13 @@
 
 =head1 AUTHOR
 
-brian d foy, C<< <bd...@cpan.org> >>
+brian d foy, C<< <briand...@pobox.com> >>
 
 Tom Wyant added support for UID types.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright © 2004-2021, brian d foy <bd...@cpan.org>. All rights reserved.
+Copyright © 2004-2024, brian d foy <briand...@pobox.com>. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the Artistic License 2.0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mac-PropertyList-1.504/lib/Mac/PropertyList/WriteBinary.pm 
new/Mac-PropertyList-1.601/lib/Mac/PropertyList/WriteBinary.pm
--- old/Mac-PropertyList-1.504/lib/Mac/PropertyList/WriteBinary.pm      
2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/lib/Mac/PropertyList/WriteBinary.pm      
2024-07-27 03:00:29.000000000 +0200
@@ -102,7 +102,7 @@
     havePack64   => ( eval { pack('Q>', 1153202979583557643) eq 
"\x10\x01\0\0\0\0\0\x0B" } ? 1 : 0 ),
 };
 
-our $VERSION = '1.504';
+our $VERSION = '1.505';
 our @EXPORT_OK = qw( as_string );
 
 sub as_string {
@@ -308,6 +308,11 @@
     }
 }
 
+sub _neg_integer {
+    my($count) = @_;
+       return pack('Cq>',  tagInteger + 3, $count);
+}
+
 sub _pos_integer {
     my($count) = @_;
 
@@ -396,15 +401,9 @@
     # Therefore all negative numbers must be written as 8-byte
     # integers.
 
-    if ($value < 0) {
-        if (Mac::PropertyList::WriteBinary::havePack64) {
-            return pack('Cq>', tagInteger + 3, $value);
-        } else {
-            return pack('CSSl>', tagInteger + 3, 65535, 65535, $value);
-        }
-    } else {
-        return Mac::PropertyList::WriteBinary::_pos_integer($value);
-    }
+       my $method = $value < 0 ? '_neg_integer' : '_pos_integer';
+       my $sub = Mac::PropertyList::WriteBinary->can($method);
+       $sub->($value);
 }
 
 package Mac::PropertyList::uid;
@@ -454,7 +453,7 @@
 
 Wim Lewis, C<< <w...@cpan.org> >>
 
-Copyright © 2012-2021 Wim Lewis. All rights reserved.
+Copyright © 2012-2024 Wim Lewis. All rights reserved.
 
 Tom Wyant added support for UID types.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/lib/Mac/PropertyList.pm 
new/Mac-PropertyList-1.601/lib/Mac/PropertyList.pm
--- old/Mac-PropertyList-1.504/lib/Mac/PropertyList.pm  2022-07-08 
05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/lib/Mac/PropertyList.pm  2024-07-27 
03:00:29.000000000 +0200
@@ -27,7 +27,7 @@
        'all' => \@EXPORT_OK,
        );
 
-our $VERSION = '1.504';
+our $VERSION = '1.601';
 
 =encoding utf8
 
@@ -265,7 +265,7 @@
                return;
                }
 
-       my $text = do { local $/; open my($fh), $file; <$fh> };
+       my $text = do { local $/; open my($fh), '<:raw', $file; <$fh> };
 
        parse_plist( $text );
        }
@@ -541,7 +541,7 @@
 sub XML_head () {
        <<"XML";
 <?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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 XML
        }
@@ -1019,13 +1019,13 @@
 
 =head1 AUTHOR
 
-brian d foy, C<< <bd...@cpan.org> >>
+brian d foy, C<< <briand...@pobox.com> >>
 
 Tom Wyant added support for UID types.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright © 2004-2021, brian d foy <bd...@cpan.org>. All rights reserved.
+Copyright © 2004-2024, brian d foy <briand...@pobox.com>. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the Artistic License 2.0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/array.t 
new/Mac-PropertyList-1.601/t/array.t
--- old/Mac-PropertyList-1.504/t/array.t        2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/array.t        2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -41,7 +41,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -66,7 +66,7 @@
 
 my $array =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <array>
        <string>Mimi</string>
@@ -88,7 +88,7 @@
 note 'Try non-canonical layout';
 $plist = &{$parse_fqname}( <<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//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>
 </plist>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/as_perl.t 
new/Mac-PropertyList-1.601/t/as_perl.t
--- old/Mac-PropertyList-1.504/t/as_perl.t      2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/as_perl.t      2024-07-27 03:00:29.000000000 
+0200
@@ -28,7 +28,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -36,7 +36,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/bad_plist.t 
new/Mac-PropertyList-1.601/t/bad_plist.t
--- old/Mac-PropertyList-1.504/t/bad_plist.t    2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/bad_plist.t    2024-07-27 03:00:29.000000000 
+0200
@@ -28,7 +28,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -44,7 +44,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/basic_types.t 
new/Mac-PropertyList-1.601/t/basic_types.t
--- old/Mac-PropertyList-1.504/t/basic_types.t  2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/basic_types.t  2024-07-27 03:00:29.000000000 
+0200
@@ -28,7 +28,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -46,7 +46,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -62,7 +62,7 @@
 
 my $array = <<'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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <array>
     <string>Green</string>
@@ -79,7 +79,7 @@
 
 my $dict = <<'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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <dict>
     <key>Bananas</key>
@@ -100,7 +100,7 @@
 
 my $nested_array = <<'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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <array>
     <string>Green</string>
@@ -121,7 +121,7 @@
 
 my $nested_dict = <<'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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <dict>
     <key>Bananas</key>
@@ -150,7 +150,7 @@
 
 my $scalar = <<'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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <real>59</real>
 </plist>
@@ -164,7 +164,7 @@
 
 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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
   <string>A
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/container.t 
new/Mac-PropertyList-1.601/t/container.t
--- old/Mac-PropertyList-1.504/t/container.t    2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/container.t    2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/decode_entities.t 
new/Mac-PropertyList-1.601/t/decode_entities.t
--- old/Mac-PropertyList-1.504/t/decode_entities.t      2022-07-08 
05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/decode_entities.t      2024-07-27 
03:00:29.000000000 +0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -49,7 +49,7 @@
 
 my $array =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <array>
        <string>Mimi &amp; Buster</string>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/dict.t 
new/Mac-PropertyList-1.601/t/dict.t
--- old/Mac-PropertyList-1.504/t/dict.t 2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/dict.t 2024-07-27 03:00:29.000000000 +0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -41,7 +41,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -67,7 +67,7 @@
 ########################################################################
 my $dict =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key>Mimi</key>
@@ -105,7 +105,7 @@
 
 $plist = &{$parse_fqname}( <<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//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>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/false_key.t 
new/Mac-PropertyList-1.601/t/false_key.t
--- old/Mac-PropertyList-1.504/t/false_key.t    2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/false_key.t    2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -41,7 +41,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -57,7 +57,7 @@
 
 my $good_dict =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key>0</key>
@@ -70,7 +70,7 @@
 
 my $bad_dict =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key></key>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/get_filehandle.t 
new/Mac-PropertyList-1.601/t/get_filehandle.t
--- old/Mac-PropertyList-1.504/t/get_filehandle.t       2022-07-08 
05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/get_filehandle.t       2024-07-27 
03:00:29.000000000 +0200
@@ -28,7 +28,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -36,7 +36,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/import.t 
new/Mac-PropertyList-1.601/t/import.t
--- old/Mac-PropertyList-1.504/t/import.t       2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/import.t       2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/load.t 
new/Mac-PropertyList-1.601/t/load.t
--- old/Mac-PropertyList-1.504/t/load.t 2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/load.t 2024-07-27 03:00:29.000000000 +0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/parse.t 
new/Mac-PropertyList-1.601/t/parse.t
--- old/Mac-PropertyList-1.504/t/parse.t        2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/parse.t        2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -43,7 +43,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -53,58 +53,57 @@
 =cut
 
 my $class = 'Mac::PropertyList';
-use_ok( $class ) or BAIL_OUT( "$class did not compile\n" );
+my $method = 'parse_plist';
+my $method_ref;
+subtest sanity => sub {
+       use_ok( $class ) or BAIL_OUT( "$class did not compile\n" );
+       can_ok $class, $method;
+       $method_ref = $class->can($method);
+};
 
-my $array =<<"HERE";
+my $old_template = <<"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">
+%s
+</plist>
+HERE
+
+my $new_template = $old_template;
+$new_template =~ s/Apple Computer/Apple/;
+
+my %templates = (
+       'Apple' => $new_template,
+       'Apple Computer' => $old_template,
+       );
+
+my $array =<<"HERE";
 <array>
        <string>Mimi</string>
        <string>Roscoe</string>
 </array>
-</plist>
 HERE
 
 my $dict =<<"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>Mimi</key>
        <string>Roscoe</string>
 </dict>
-</plist>
 HERE
 
 my $string1_0 =<<"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>This is it</string>
-</plist>
 HERE
 
 my $string0_9 =<<"HERE";
-<?xml version="0.9" 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>This is it</string>
-</plist>
 HERE
 
 my $empty_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/>
-</plist>
 HERE
 
 my $nested_dict =<<"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>Mimi</key>
        <dict>
@@ -114,11 +113,8 @@
                <true/>
        </dict>
 </dict>
-</plist>
 HERE
 
-########################################################################
-my $parse_fqname = $class . '::parse_plist';
 
 my $array_shortname  = 'array';
 my $dict_shortname   = 'dict';
@@ -128,63 +124,70 @@
 my $dict_type   = join '::', $class, $dict_shortname;
 my $string_type = join '::', $class, $string_shortname;
 
-{
-my $plist = &{$parse_fqname}( $array );
-
-isa_ok( $plist, $array_type );
-is(     $plist->type, $array_shortname, "Item is an $array_shortname type" );
-isa_ok( $plist->value, $array_type );
-
-my @elements = @{ $plist->value };
-isa_ok( $elements[0], $string_type );
-isa_ok( $elements[1], $string_type );
-is( $elements[0]->value, 'Mimi',   "Mimi $string_shortname is right"  );
-is( $elements[1]->value, 'Roscoe', "Roscoe $string_shortname is right" );
-}
-
-########################################################################
-{
-my $plist = &{$parse_fqname}( $dict );
-isa_ok( $plist, $dict_type );
-is( $plist->type, $dict_shortname, "item is a $dict_shortname type" );
-isa_ok( $plist->value, $dict_type );
-
-my $hash = $plist->value;
-ok( exists $hash->{Mimi}, 'Mimi key exists for dict' );
-isa_ok( $hash->{Mimi}, $string_type );
-is( $hash->{Mimi}->value, 'Roscoe', 'Mimi string has right value' );
-}
-
-########################################################################
-foreach my $string ( ( $string0_9, $string1_0 ) ) {
-       my $plist = &{$parse_fqname}( $string );
-
-       isa_ok( $plist, $string_type );
-       is( $plist->type, $string_shortname, 'type key has right value for 
string' );
-       is( $plist->value, 'This is it', 'value is right for string' );
+foreach my $key ( sort keys %templates ) {
+       subtest $key => sub {
+               my $template = $templates{$key};
+
+               subtest 'array' => sub {
+                       my $plist = $method_ref->( sprintf $template, $array );
+
+                       isa_ok( $plist, $array_type );
+                       is(     $plist->type, $array_shortname, "Item is an 
$array_shortname type" );
+                       isa_ok( $plist->value, $array_type );
+
+                       my @elements = @{ $plist->value };
+                       isa_ok( $elements[0], $string_type );
+                       isa_ok( $elements[1], $string_type );
+                       is( $elements[0]->value, 'Mimi',   "Mimi 
$string_shortname is right"  );
+                       is( $elements[1]->value, 'Roscoe', "Roscoe 
$string_shortname is right" );
+                       };
+
+               subtest 'dict' => sub {
+                       my $plist = $method_ref->( sprintf $template, $dict );
+                       isa_ok( $plist, $dict_type );
+                       is( $plist->type, $dict_shortname, "item is a 
$dict_shortname type" );
+                       isa_ok( $plist->value, $dict_type );
+
+                       my $hash = $plist->value;
+                       ok( exists $hash->{Mimi}, 'Mimi key exists for dict' );
+                       isa_ok( $hash->{Mimi}, $string_type );
+                       is( $hash->{Mimi}->value, 'Roscoe', 'Mimi string has 
right value' );
+                       };
+
+               subtest 'strings' => sub {
+                       foreach my $string ( $string0_9, $string1_0 ) {
+                               my $plist = $method_ref->( sprintf $template, 
$string );
+
+                               isa_ok( $plist, $string_type );
+                               is( $plist->type, $string_shortname, 'type key 
has right value for string' );
+                               is( $plist->value, 'This is it', 'value is 
right for string' );
+                               }
+                       };
+
+               subtest 'nested dict' => sub {
+                       my $plist = $method_ref->( sprintf $template, 
$nested_dict );
+
+                       isa_ok( $plist, $dict_type );
+                       is( $plist->type, $dict_shortname, 'type key has right 
value for nested dict' );
+                       isa_ok( $plist->value, 'HASH' );
+
+                       my $hash = $plist->value->{Mimi};
+
+                       isa_ok( $plist, $dict_type );
+                       is( $plist->type, $dict_shortname, "item is a 
$dict_shortname type" );
+                       isa_ok( $plist->value, $dict_type );
+                       is( $hash->value->{Roscoe}->value, 1, 'Roscoe string 
has right value'   );
+                       is( $hash->value->{Boolean}->value, 'true', 'Boolean 
string has right value'  );
+                       };
+
+               subtest 'empty string' => sub {
+                       my $plist = $method_ref->( sprintf $template, 
$empty_string );
+
+                       isa_ok( $plist, $string_type );
+                       is( $plist->type, $string_shortname, 'type key has 
right value for string' );
+                       is( $plist->value, '', 'value is right for string' );
+                       };
+               };
        }
 
-$plist = &{$parse_fqname}( $nested_dict );
-
-isa_ok( $plist, $dict_type );
-is( $plist->type, $dict_shortname, 'type key has right value for nested dict' 
);
-isa_ok( $plist->value, 'HASH' );
-
-########################################################################
-my $hash = $plist->value->{Mimi};
-
-isa_ok( $plist, $dict_type );
-is( $plist->type, $dict_shortname, "item is a $dict_shortname type" );
-isa_ok( $plist->value, $dict_type );
-is( $hash->value->{Roscoe}->value, 1, 'Roscoe string has right value'   );
-is( $hash->value->{Boolean}->value, 'true', 'Boolean string has right value'  
);
-
-########################################################################
-
-$plist = &{$parse_fqname}( $empty_string );
-
-isa_ok( $plist, $string_type );
-is( $plist->type, $string_shortname, 'type key has right value for string' );
-is( $plist->value, '', 'value is right for string' );
-
 done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/parse_plist_fh.t 
new/Mac-PropertyList-1.601/t/parse_plist_fh.t
--- old/Mac-PropertyList-1.504/t/parse_plist_fh.t       2022-07-08 
05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/parse_plist_fh.t       2024-07-27 
03:00:29.000000000 +0200
@@ -28,7 +28,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -36,7 +36,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/plists.t 
new/Mac-PropertyList-1.601/t/plists.t
--- old/Mac-PropertyList-1.504/t/plists.t       2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/plists.t       2024-07-27 03:00:29.000000000 
+0200
@@ -27,7 +27,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -47,7 +47,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/read_binary.t 
new/Mac-PropertyList-1.601/t/read_binary.t
--- old/Mac-PropertyList-1.504/t/read_binary.t  2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/read_binary.t  2024-07-27 03:00:29.000000000 
+0200
@@ -34,7 +34,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -52,7 +52,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/scalar.t 
new/Mac-PropertyList-1.601/t/scalar.t
--- old/Mac-PropertyList-1.504/t/scalar.t       2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/scalar.t       2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -41,7 +41,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/string.t 
new/Mac-PropertyList-1.601/t/string.t
--- old/Mac-PropertyList-1.504/t/string.t       2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/string.t       2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -56,7 +56,7 @@
 subtest parse => sub {
        my $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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <string>Mimi</string>
 </plist>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/time.t 
new/Mac-PropertyList-1.601/t/time.t
--- old/Mac-PropertyList-1.504/t/time.t 2022-07-08 05:17:58.000000000 +0200
+++ new/Mac-PropertyList-1.601/t/time.t 2024-07-27 03:00:29.000000000 +0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 =head1 SOURCE
 
@@ -33,7 +33,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/write.t 
new/Mac-PropertyList-1.601/t/write.t
--- old/Mac-PropertyList-1.504/t/write.t        2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/write.t        2024-07-27 03:00:29.000000000 
+0200
@@ -25,7 +25,7 @@
 
 =head1 AUTHORS
 
-Original author: brian d foy C<< <bd...@cpan.org> >>
+Original author: brian d foy C<< <briand...@pobox.com> >>
 
 Contributors:
 
@@ -41,7 +41,7 @@
 
 =head1 COPYRIGHT
 
-Copyright © 2002-2022, brian d foy, C<< <bd...@cpan.org> >>
+Copyright © 2002-2024, brian d foy, C<< <briand...@pobox.com> >>
 
 =head1 LICENSE
 
@@ -55,7 +55,7 @@
 
 my $array =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <array>
        <string>Mimi</string>
@@ -66,7 +66,7 @@
 
 my $dict =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key>Mimi</key>
@@ -77,7 +77,7 @@
 
 my $nested_dict =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key>Mimi</key>
@@ -93,7 +93,7 @@
 
 my $nested_dict_alt =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <dict>
        <key>Mimi</key>
@@ -109,7 +109,7 @@
 
 my $array_various =<<"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";>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
 <plist version="1.0">
 <array>
        <data>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mac-PropertyList-1.504/t/write_binary.t 
new/Mac-PropertyList-1.601/t/write_binary.t
--- old/Mac-PropertyList-1.504/t/write_binary.t 2022-07-08 05:17:58.000000000 
+0200
+++ new/Mac-PropertyList-1.601/t/write_binary.t 2024-07-27 03:00:29.000000000 
+0200
@@ -105,6 +105,7 @@
 &testrep( integer => 256,    "\x11\x01\x00" );
 &testrep( integer => 65535,  "\x11\xFF\xFF" );
 &testrep( integer => 65536,  "\x12\x00\x01\x00\x00" );
+
 &testrep( integer => -1,     "\x13\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" );
 &testrep( integer => -255,   "\x13\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01" );
 

Reply via email to