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+perl@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: bdfoy@cpan.org + email: briandfoy@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 <bdfoy@cpan.org>" + "brian d foy <briandfoy@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 <bdfoy@cpan.org>' + - 'brian d foy <briandfoy@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 <bdfoy@cpan.org>', + 'AUTHOR' => 'brian d foy <briandfoy@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, bdfoy@cpan.org +brian d foy, briandfoy@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<< <bdfoy@cpan.org> >> +brian d foy, C<< <briandfoy@pobox.com> >> Tom Wyant added support for UID types. =head1 COPYRIGHT AND LICENSE -Copyright © 2004-2021, brian d foy <bdfoy@cpan.org>. All rights reserved. +Copyright © 2004-2024, brian d foy <briandfoy@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<< <wiml@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<< <bdfoy@cpan.org> >> +brian d foy, C<< <briandfoy@pobox.com> >> Tom Wyant added support for UID types. =head1 COPYRIGHT AND LICENSE -Copyright © 2004-2021, brian d foy <bdfoy@cpan.org>. All rights reserved. +Copyright © 2004-2024, brian d foy <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -41,7 +41,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -36,7 +36,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -44,7 +44,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -46,7 +46,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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 & 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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -41,7 +41,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -41,7 +41,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -36,7 +36,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -43,7 +43,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -36,7 +36,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -47,7 +47,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -52,7 +52,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -41,7 +41,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> =head1 SOURCE @@ -33,7 +33,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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<< <bdfoy@cpan.org> >> +Original author: brian d foy C<< <briandfoy@pobox.com> >> Contributors: @@ -41,7 +41,7 @@ =head1 COPYRIGHT -Copyright © 2002-2022, brian d foy, C<< <bdfoy@cpan.org> >> +Copyright © 2002-2024, brian d foy, C<< <briandfoy@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" );