Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Spreadsheet-Read for
openSUSE:Factory checked in at 2025-12-20 21:47:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Spreadsheet-Read (Old)
and /work/SRC/openSUSE:Factory/.perl-Spreadsheet-Read.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Spreadsheet-Read"
Sat Dec 20 21:47:12 2025 rev:26 rq:1323813 version:0.940.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-Spreadsheet-Read/perl-Spreadsheet-Read.changes
2025-04-15 16:49:24.223883979 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Spreadsheet-Read.new.1928/perl-Spreadsheet-Read.changes
2025-12-20 21:50:00.431925344 +0100
@@ -1,0 +2,13 @@
+Wed Dec 10 05:36:08 UTC 2025 - Tina Müller <[email protected]>
+
+- updated to 0.940.0 (0.94)
+ see /usr/share/doc/packages/perl-Spreadsheet-Read/Changes
+
+ 0.94 - 09 Dec 2025, H.Merijn Brand
+ * Add label2col ()
+ * $sheet->{attr} should always be there, might be empty (issue#56)
+ * Skip type tests when unsupported (issue#56)
+ * Skip merge tests when unsupported (issue#56)
+ * Update SECURITY.md
+
+-------------------------------------------------------------------
Old:
----
Spreadsheet-Read-0.93.tgz
New:
----
README.md
Spreadsheet-Read-0.94.tgz
_scmsync.obsinfo
build.specials.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Spreadsheet-Read.spec ++++++
--- /var/tmp/diff_new_pack.zw5Dv5/_old 2025-12-20 21:50:00.959947204 +0100
+++ /var/tmp/diff_new_pack.zw5Dv5/_new 2025-12-20 21:50:00.963947369 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Spreadsheet-Read
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,16 @@
%define cpan_name Spreadsheet-Read
Name: perl-Spreadsheet-Read
-Version: 0.930.0
+Version: 0.940.0
Release: 0
-# 0.93 -> normalize -> 0.930.0
-%define cpan_version 0.93
+# 0.94 -> normalize -> 0.940.0
+%define cpan_version 0.94
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Meta-Wrapper for reading spreadsheet data
URL: https://metacpan.org/release/%{cpan_name}
Source0:
https://cpan.metacpan.org/authors/id/H/HM/HMBRAND/%{cpan_name}-%{cpan_version}.tgz
Source1: cpanspec.yml
+Source100: README.md
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
@@ -45,7 +46,7 @@
Recommends: perl(Data::Dumper) >= 2.183
Recommends: perl(Data::Peek) >= 0.530
Recommends: perl(Encode) >= 3.21
-Recommends: perl(File::Temp) >= 0.2311
+Recommends: perl(File::Temp) >= 0.2312
Recommends: perl(IO::Scalar)
%{perl_requires}
# MANUAL BEGIN
++++++ README.md ++++++
## Build Results
Current state of perl in openSUSE:Factory is

The current state of perl in the devel project build (devel:languages:perl)

++++++ Spreadsheet-Read-0.93.tgz -> Spreadsheet-Read-0.94.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/Changes
new/Spreadsheet-Read-0.94/Changes
--- old/Spreadsheet-Read-0.93/Changes 2025-03-17 16:42:09.000000000 +0100
+++ new/Spreadsheet-Read-0.94/Changes 2025-12-09 14:00:38.000000000 +0100
@@ -1,3 +1,10 @@
+0.94 - 09 Dec 2025, H.Merijn Brand
+ * Add label2col ()
+ * $sheet->{attr} should always be there, might be empty (issue#56)
+ * Skip type tests when unsupported (issue#56)
+ * Skip merge tests when unsupported (issue#56)
+ * Update SECURITY.md
+
0.93 - 17 Mar 2025, H.Merijn Brand
* Add ranges and cellranges
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/META.json
new/Spreadsheet-Read-0.94/META.json
--- old/Spreadsheet-Read-0.93/META.json 2025-03-17 16:44:30.000000000 +0100
+++ new/Spreadsheet-Read-0.94/META.json 2025-12-09 14:06:48.000000000 +0100
@@ -1,58 +1,47 @@
{
- "generated_by" : "Author",
- "dynamic_config" : 1,
- "resources" : {
- "bugtracker" : {
- "web" : "https://github.com/Tux/Spreadsheet-Read/issues"
- },
- "license" : [
- "http://dev.perl.org/licenses/"
- ],
- "repository" : {
- "url" : "https://github.com/Tux/Spreadsheet-Read",
- "type" : "git",
- "web" : "https://github.com/Tux/Spreadsheet-Read"
+ "release_status" : "stable",
+ "provides" : {
+ "Spreadsheet::Read" : {
+ "file" : "Read.pm",
+ "version" : "0.94"
}
},
- "author" : [
- "H.Merijn Brand <[email protected]>"
- ],
"prereqs" : {
- "runtime" : {
- "suggests" : {
- "Data::Dumper" : "2.189"
+ "test" : {
+ "requires" : {
+ "Test::Harness" : "0",
+ "Test::NoWarnings" : "0",
+ "Test::More" : "0.88"
},
"recommends" : {
+ "Test::More" : "1.302219"
+ }
+ },
+ "runtime" : {
+ "recommends" : {
+ "Data::Peek" : "0.53",
+ "Encode" : "3.21",
"Data::Dumper" : "2.183",
- "File::Temp" : "0.2311",
"IO::Scalar" : "0",
- "Data::Peek" : "0.53",
- "Encode" : "3.21"
+ "File::Temp" : "0.2312"
},
"requires" : {
- "Encode" : "0",
- "List::Util" : "0",
+ "Data::Dumper" : "0",
+ "File::Temp" : "0.22",
"Exporter" : "0",
- "Carp" : "0",
+ "Encode" : "0",
"Data::Peek" : "0",
+ "List::Util" : "0",
"perl" : "5.008001",
- "Data::Dumper" : "0",
- "File::Temp" : "0.22"
- }
- },
- "test" : {
- "requires" : {
- "Test::More" : "0.88",
- "Test::Harness" : "0",
- "Test::NoWarnings" : "0"
+ "Carp" : "0"
},
- "recommends" : {
- "Test::More" : "1.302209"
+ "suggests" : {
+ "Data::Dumper" : "2.192"
}
},
"configure" : {
"suggests" : {
- "ExtUtils::MakeMaker" : "7.72"
+ "ExtUtils::MakeMaker" : "7.76"
},
"recommends" : {
"ExtUtils::MakeMaker" : "7.22"
@@ -62,119 +51,130 @@
}
}
},
+ "name" : "Spreadsheet-Read",
"license" : [
"perl_5"
],
- "version" : "0.93",
+ "abstract" : "Meta-Wrapper for reading spreadsheet data",
+ "version" : "0.94",
+ "meta-spec" : {
+ "version" : 2,
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec"
+ },
+ "dynamic_config" : 1,
+ "resources" : {
+ "repository" : {
+ "type" : "git",
+ "url" : "https://github.com/Tux/Spreadsheet-Read",
+ "web" : "https://github.com/Tux/Spreadsheet-Read"
+ },
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ],
+ "bugtracker" : {
+ "web" : "https://github.com/Tux/Spreadsheet-Read/issues"
+ }
+ },
"optional_features" : {
- "opt_sxc" : {
+ "opt_xlsx" : {
+ "description" : "Provides parsing of Microsoft Excel 2007 files",
"prereqs" : {
"runtime" : {
"recommends" : {
- "Spreadsheet::ReadSXC" : "0.39"
+ "Spreadsheet::ParseXLSX" : "0.36"
},
"requires" : {
- "Spreadsheet::ReadSXC" : "0.26"
+ "Spreadsheet::ParseXLSX" : "0.24",
+ "Spreadsheet::ParseExcel::FmtDefault" : "0"
}
}
- },
- "description" : "Provides parsing of OpenOffice spreadsheets old
style"
+ }
},
- "opt_tools" : {
+ "opt_gnumeric" : {
"prereqs" : {
"runtime" : {
"recommends" : {
- "Tk::TableMatrix::Spreadsheet" : "0",
- "Tk::NoteBook" : "0",
- "Tk" : "804.036"
+ "Spreadsheet::ReadGnumeric" : "0.4"
+ },
+ "requires" : {
+ "Spreadsheet::ReadGnumeric" : "0.2"
}
}
},
- "description" : "Spreadsheet tools"
+ "description" : "Provides parsing of Gnumeric spreadsheets"
},
- "opt_csv" : {
+ "opt_ods" : {
+ "description" : "Provides parsing of OpenOffice spreadsheets",
"prereqs" : {
"runtime" : {
"requires" : {
- "Text::CSV_XS" : "0.71"
+ "Spreadsheet::ParseODS" : "0.26"
},
"recommends" : {
- "Text::CSV_PP" : "2.06",
- "Text::CSV_XS" : "1.60",
- "Text::CSV" : "2.06"
+ "Spreadsheet::ParseODS" : "0.39"
}
}
- },
- "description" : "Provides parsing of CSV streams"
+ }
},
- "opt_gnumeric" : {
- "description" : "Provides parsing of Gnumeric spreadsheets",
+ "opt_sxc" : {
"prereqs" : {
"runtime" : {
"requires" : {
- "Spreadsheet::ReadGnumeric" : "0.2"
+ "Spreadsheet::ReadSXC" : "0.26"
},
"recommends" : {
- "Spreadsheet::ReadGnumeric" : "0.4"
+ "Spreadsheet::ReadSXC" : "0.39"
}
}
- }
+ },
+ "description" : "Provides parsing of OpenOffice spreadsheets old
style"
},
- "opt_ods" : {
- "description" : "Provides parsing of OpenOffice spreadsheets",
+ "opt_tools" : {
"prereqs" : {
"runtime" : {
"recommends" : {
- "Spreadsheet::ParseODS" : "0.39"
- },
- "requires" : {
- "Spreadsheet::ParseODS" : "0.26"
+ "Tk" : "804.036",
+ "Tk::TableMatrix::Spreadsheet" : "0",
+ "Tk::NoteBook" : "0"
}
}
- }
+ },
+ "description" : "Spreadsheet tools"
},
- "opt_xls" : {
- "description" : "Provides parsing of Microsoft Excel files",
+ "opt_csv" : {
"prereqs" : {
"runtime" : {
"requires" : {
- "OLE::Storage_Lite" : "!= 0.21",
- "Spreadsheet::ParseExcel" : "0.34",
- "Spreadsheet::ParseExcel::FmtDefault" : "0"
+ "Text::CSV_XS" : "0.71"
},
"recommends" : {
- "Spreadsheet::ParseExcel" : "0.66",
- "OLE::Storage_Lite" : "0.22"
+ "Text::CSV" : "2.06",
+ "Text::CSV_XS" : "1.61",
+ "Text::CSV_PP" : "2.06"
}
}
- }
+ },
+ "description" : "Provides parsing of CSV streams"
},
- "opt_xlsx" : {
+ "opt_xls" : {
"prereqs" : {
"runtime" : {
+ "recommends" : {
+ "OLE::Storage_Lite" : "0.24",
+ "Spreadsheet::ParseExcel" : "0.66"
+ },
"requires" : {
+ "OLE::Storage_Lite" : "!= 0.21",
"Spreadsheet::ParseExcel::FmtDefault" : "0",
- "Spreadsheet::ParseXLSX" : "0.24"
- },
- "recommends" : {
- "Spreadsheet::ParseXLSX" : "0.36"
+ "Spreadsheet::ParseExcel" : "0.34"
}
}
},
- "description" : "Provides parsing of Microsoft Excel 2007 files"
+ "description" : "Provides parsing of Microsoft Excel files"
}
},
- "release_status" : "stable",
- "abstract" : "Meta-Wrapper for reading spreadsheet data",
- "name" : "Spreadsheet-Read",
- "provides" : {
- "Spreadsheet::Read" : {
- "version" : "0.93",
- "file" : "Read.pm"
- }
- },
- "meta-spec" : {
- "version" : 2,
- "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec"
- }
+ "generated_by" : "Author",
+ "author" : [
+ "H.Merijn Brand <[email protected]>"
+ ]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/META.yml
new/Spreadsheet-Read-0.94/META.yml
--- old/Spreadsheet-Read-0.93/META.yml 2025-03-17 16:44:30.000000000 +0100
+++ new/Spreadsheet-Read-0.94/META.yml 2025-12-09 14:06:48.000000000 +0100
@@ -1,7 +1,7 @@
---
abstract: Meta-Wrapper for reading spreadsheet data
author:
- - H.Merijn Brand <[email protected]>
+ - H.Merijn Brand <[email protected]>
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 1
@@ -44,14 +44,14 @@
provides:
Spreadsheet::Read:
file: Read.pm
- version: '0.93'
+ version: '0.94'
recommends:
Data::Dumper: '2.183'
Data::Peek: '0.53'
Encode: '3.21'
- File::Temp: '0.2311'
+ File::Temp: '0.2312'
IO::Scalar: 0
- Test::More: '1.302209'
+ Test::More: '1.302219'
requires:
Carp: 0
Data::Dumper: 0
@@ -68,4 +68,4 @@
bugtracker: https://github.com/Tux/Spreadsheet-Read/issues
license: http://dev.perl.org/licenses/
repository: https://github.com/Tux/Spreadsheet-Read
-version: '0.93'
+version: '0.94'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/Makefile.PL
new/Spreadsheet-Read-0.94/Makefile.PL
--- old/Spreadsheet-Read-0.93/Makefile.PL 2025-01-06 13:26:45.000000000
+0100
+++ new/Spreadsheet-Read-0.94/Makefile.PL 2025-04-07 11:14:56.000000000
+0200
@@ -16,13 +16,15 @@
sub link_or_copy {
my ($source, $dest) = @_;
+ -f $dest and unlink $dest;
link ($source, $dest) or copy ($source, $dest);
} # link_or_copy
+link_or_copy "scripts/xlsx2csv", "scripts/xls2csv";
+link_or_copy "scripts/xlscat", "scripts/xlsgrep";
+
my @exe;
unless (exists $ENV{AUTOMATED_TESTING} and $ENV{AUTOMATED_TESTING} == 1) {
- -f "scripts/xls2csv" or link_or_copy "scripts/xlsx2csv", "scripts/xls2csv";
- -f "scripts/xlsgrep" or link_or_copy "scripts/xlscat", "scripts/xlsgrep";
for ( [ "xlscat", "Convert Spreadsheet to plain text or CSV" ],
[ "xlsgrep", "Grep pattern from Spreadsheet" ],
[ "ss2tk", "Show a Spreadsheet in Perl/Tk" ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/Read.pm
new/Spreadsheet-Read-0.94/Read.pm
--- old/Spreadsheet-Read-0.93/Read.pm 2025-03-14 11:01:24.000000000 +0100
+++ new/Spreadsheet-Read-0.94/Read.pm 2025-06-30 07:15:28.000000000 +0200
@@ -38,7 +38,7 @@
use strict;
use warnings;
-our $VERSION = "0.93";
+our $VERSION = "0.94";
sub Version { $VERSION }
use Carp;
@@ -288,6 +288,20 @@
$cell;
} # col2label
+# label2col ("D") => 4
+sub label2col {
+ ref $_[0] eq __PACKAGE__ and shift;
+ my $l = shift or return;
+ $l =~ m/^[0-9]+$/ and return $l + 0;
+ $l =~ m/^[A-Za-z]+$/ or return;
+ $l = uc $l;
+ my $c = 0;
+ while ($l =~ s/^([A-Z])//) {
+ $c = 26 * $c + 1 + ord ($1) - ord ("A");
+ }
+ return $c;
+ } # label2col
+
# cr2cell (4, 18) => "D18"
# No prototype to allow 'cr2cell (@rowcol)'
sub cr2cell {
@@ -300,12 +314,8 @@
# cell2cr ("D18") => (4, 18)
sub cell2cr {
ref $_[0] eq __PACKAGE__ and shift;
- my ($cc, $r) = (uc ($_[0]||"") =~ m/^([A-Z]+)([0-9]+)$/) or return (0, 0);
- my $c = 0;
- while ($cc =~ s/^([A-Z])//) {
- $c = 26 * $c + 1 + ord ($1) - ord ("A");
- }
- ($c, $r);
+ my ($cc, $r) = (uc ($_[0]||"") =~ m/^([A-Z-z]+)([0-9]+)$/) or return (0,
0);
+ (label2col ($cc), $r);
} # cell2cr
# my @row = cellrow ($book->[1], 1);
@@ -816,6 +826,8 @@
mincol => 1,
indx => 1,
merged => [],
+ cell => [],
+ attr => [],
};
# Transpose to column vectors.
# The A1, B5 etc items could be added here as well.
@@ -1531,6 +1543,11 @@
return Spreadsheet::Read::col2label (@_);
} # col2label
+sub label2col {
+ $_[0] =~ m/::/ and shift; # class unused
+ return Spreadsheet::Read::label2col (@_);
+ } # label2col
+
sub cr2cell {
$_[0] =~ m/::/ and shift; # class unused
return Spreadsheet::Read::cr2cell (@_);
@@ -1573,17 +1590,23 @@
} # row
# my @col = $sheet->cellcolumn (1);
+# my @col = $sheet->cellcolumn ("A");
sub cellcolumn {
my ($sheet, $col) = @_;
- defined $col && $col > 0 && $col <= $sheet->{maxcol} or return;
+ defined $col or return;
+ $col =~ m/^[A-Za-z]+$/ and $col = label2col ($col);
+ $col > 0 && $col <= $sheet->{maxcol} or return;
my $s = $sheet->{cell};
map { $s->[$col][$_] } 1..$sheet->{maxrow};
} # cellcolumn
# my @col = $sheet->column (1);
+# my @col = $sheet->column ("A");
sub column {
my ($sheet, $col) = @_;
- defined $col && $col > 0 && $col <= $sheet->{maxcol} or return;
+ defined $col or return;
+ $col =~ m/^[A-Za-z]+$/ and $col = label2col ($col);
+ $col > 0 && $col <= $sheet->{maxcol} or return;
map { $sheet->{$sheet->cr2cell ($col, $_)} } 1..$sheet->{maxrow};
} # column
@@ -1793,7 +1816,7 @@
index 1 too in the C<cell> element of the sheet hash, so cell "A1" is
the same as C<cell> [1, 1] (column first). To switch between the two,
there are helper functions available: C<cell2cr ()>, C<cr2cell ()>,
-and C<col2label ()>.
+C<col2label ()> and C<label2col ()>.
The C<cell> hash entry contains unformatted data, while the hash entries
with the traditional labels contain the formatted values (if applicable).
@@ -2034,9 +2057,9 @@
=head3 col2label
- my $col_id = col2label (col);
+ my $col_id = col2label ($col);
- my $col_id = $book->col2label (col); # OO
+ my $col_id = $book->col2label ($col); # OO
C<col2label ()> converts a C<(column)> (1 based) to the letters used in the
traditional cell notation:
@@ -2044,6 +2067,18 @@
my $id = col2label ( 4); # $id now "D"
my $id = col2label (28); # $id now "AB"
+=head3 label2col
+
+ my $col = label2col ($id);
+
+ my $col = $book->label2col ($id); # OO
+
+C<label2col ()> converts a C<(column ID)> to the 1-based numeric equivalent
+or C<undef> on invalid C<$id>.
+
+ my $c = label2col ("D"); # $c now 4
+ my $c = label2col ("AB"); # $c now 28
+
=head3 cr2cell
my $cell = cr2cell (col, row);
@@ -2275,6 +2310,8 @@
my @col = $sheet->column ($col);
+C<$col> can be numeric (1-based) or traditional.
+
Get full column of formatted values (like C<< $sheet->{C1} .. $sheet->{C9} >>)
Note that the indexes in the returned list are 0-based.
@@ -2283,6 +2320,8 @@
my @col = $sheet->cellcolumn ($col);
+C<$col> can be numeric (1-based) or traditional.
+
Get full column of unformatted values (like C<< $sheet->{cell}[3][1] ..
$sheet->{cell}[3][9] >>)
Note that the indexes in the returned list are 0-based.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/SECURITY.md
new/Spreadsheet-Read-0.94/SECURITY.md
--- old/Spreadsheet-Read-0.93/SECURITY.md 2025-02-26 16:35:54.000000000
+0100
+++ new/Spreadsheet-Read-0.94/SECURITY.md 2025-12-09 13:59:36.000000000
+0100
@@ -1,7 +1,6 @@
# Security Policy for the Spreadsheet::Read distribution.
-Report issues via email at: H.Merijn Brand <[email protected]>.
-
+Report security issues by email to H.Merijn Brand <[email protected]>.
This is the Security Policy for Spreadsheet::Read.
@@ -9,13 +8,13 @@
[git repository for
Spreadsheet::Read](https://github.com/Tux/Spreadsheet-Read).
This text is based on the CPAN Security Group's Guidelines for Adding
-a Security Policy to Perl Distributions (version 1.0.0)
+a Security Policy to Perl Distributions (version 1.3.0)
https://security.metacpan.org/docs/guides/security-policy-for-authors.html
# How to Report a Security Vulnerability
-Security vulnerabilities can be reported by e-mail to the current
-project maintainers at H.Merijn Brand <[email protected]>.
+Security vulnerabilities can be reported to the current Spreadsheet::Read
+maintainers by email to H.Merijn Brand <[email protected]>.
Please include as many details as possible, including code samples
or test cases, so that we can reproduce the issue. Check that your
@@ -62,13 +61,16 @@
Any security vulnerabilities in Spreadsheet::Read are covered by this policy.
+Security vulnerabilities in versions of any libraries that are
+included in Spreadsheet::Read are also covered by this policy.
+
Security vulnerabilities are considered anything that allows users
to execute unauthorised code, access unauthorised resources, or to
have an adverse impact on accessibility or performance of a system.
-Security vulnerabilities in upstream software (embedded libraries,
-prerequisite modules or system libraries, or in Perl), are not
-covered by this policy unless they affect Spreadsheet::Read, or
Spreadsheet::Read can
+Security vulnerabilities in upstream software (prerequisite modules
+or system libraries, or in Perl), are not covered by this policy
+unless they affect Spreadsheet::Read, or Spreadsheet::Read can
be used to exploit vulnerabilities in them.
Security vulnerabilities in downstream software (any software that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/cpanfile
new/Spreadsheet-Read-0.94/cpanfile
--- old/Spreadsheet-Read-0.93/cpanfile 2025-03-17 16:44:29.000000000 +0100
+++ new/Spreadsheet-Read-0.94/cpanfile 2025-12-09 14:06:48.000000000 +0100
@@ -9,17 +9,17 @@
recommends "Data::Dumper" => "2.183";
recommends "Data::Peek" => "0.53";
recommends "Encode" => "3.21";
-recommends "File::Temp" => "0.2311";
+recommends "File::Temp" => "0.2312";
recommends "IO::Scalar";
-suggests "Data::Dumper" => "2.189";
+suggests "Data::Dumper" => "2.192";
on "configure" => sub {
requires "ExtUtils::MakeMaker";
recommends "ExtUtils::MakeMaker" => "7.22";
- suggests "ExtUtils::MakeMaker" => "7.72";
+ suggests "ExtUtils::MakeMaker" => "7.76";
};
on "test" => sub {
@@ -27,7 +27,7 @@
requires "Test::More" => "0.88";
requires "Test::NoWarnings";
- recommends "Test::More" => "1.302209";
+ recommends "Test::More" => "1.302219";
};
feature "opt_csv", "Provides parsing of CSV streams" => sub {
@@ -35,7 +35,7 @@
recommends "Text::CSV" => "2.06";
recommends "Text::CSV_PP" => "2.06";
- recommends "Text::CSV_XS" => "1.60";
+ recommends "Text::CSV_XS" => "1.61";
};
feature "opt_gnumeric", "Provides parsing of Gnumeric spreadsheets" => sub {
@@ -67,7 +67,7 @@
requires "Spreadsheet::ParseExcel" => "0.34";
requires "Spreadsheet::ParseExcel::FmtDefault";
- recommends "OLE::Storage_Lite" => "0.22";
+ recommends "OLE::Storage_Lite" => "0.24";
recommends "Spreadsheet::ParseExcel" => "0.66";
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/scripts/xlscat
new/Spreadsheet-Read-0.94/scripts/xlscat
--- old/Spreadsheet-Read-0.93/scripts/xlscat 2025-01-06 13:31:04.000000000
+0100
+++ new/Spreadsheet-Read-0.94/scripts/xlscat 2025-04-07 11:02:46.000000000
+0200
@@ -115,7 +115,7 @@
my $enc_o; # Output encoding
GetOptions (
"help|?" => sub { usage (0); },
- "V|version" => sub { print "$CMD [$VERSION] Spreadsheet::Read
[$Spreadsheet::Read::VERSION]\n"; exit 0; },
+ "V|version" => sub { print "$CMD [$VERSION]
Spreadsheet::Read [$Spreadsheet::Read::VERSION]\n"; exit 0; },
"list" => sub { list_parsers (); },
# Input CSV
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/scripts/xlsx2csv
new/Spreadsheet-Read-0.94/scripts/xlsx2csv
--- old/Spreadsheet-Read-0.93/scripts/xlsx2csv 2025-01-06 13:31:13.000000000
+0100
+++ new/Spreadsheet-Read-0.94/scripts/xlsx2csv 2025-04-07 11:03:41.000000000
+0200
@@ -35,20 +35,20 @@
use Getopt::Long qw( :config bundling noignorecase passthrough );
GetOptions (
- "help|?" => sub { usage 0; },
- "V|version" => sub { print "$cmd [$VERSION]\n"; exit 0; },
+ "help|?" => sub { usage 0; },
+ "V|version" => sub { print "$cmd [$VERSION]\n"; exit 0; },
"man" => sub { pod_nroff (); },
"info" => sub { pod_text (); },
"list" => sub { list_parsers (); },
- "o|c|out=s" => \ my $csv,
+ "o|c|out=s" => \ my $csv,
"i|x|in=s" => \ my $xls,
- "f|force!" => \ my $opt_f,
+ "f|force!" => \ my $opt_f,
"s|sep=s" => \ my $opt_s,
- "A|all!" => \ my $opt_A,
- "N|no-pfx!" => \ my $opt_N,
+ "A|all!" => \ my $opt_A,
+ "N|no-pfx!" => \ my $opt_N,
"Z|zip!" => \ my $opt_Z,
"J|join=s" => \(my $opt_J = "-"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/10_basics.t
new/Spreadsheet-Read-0.94/t/10_basics.t
--- old/Spreadsheet-Read-0.93/t/10_basics.t 2024-01-02 22:22:20.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/10_basics.t 2025-04-04 10:06:34.000000000
+0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 118;
+use Test::More tests => 131;
use Test::NoWarnings;
use Spreadsheet::Read qw(:DEFAULT parses rows );
@@ -61,7 +61,12 @@
is ($cell, $x->[3], "Cell for ($c, $r)");
is (Spreadsheet::Read::col2label ($x->[0]), $x->[2], "Col $c eq $x->[2]");
+ is (Spreadsheet::Read::label2col ($x->[2]), $x->[0], "Col $x->[2] eq $c")
if $x->[2];
}
+is (Spreadsheet::Read::label2col (undef), undef, "Col undef eq undef");
+is (Spreadsheet::Read::label2col ( ""), undef, "Col '' eq undef");
+is (Spreadsheet::Read::label2col ( -2), undef, "Col -2 eq undef");
+is (Spreadsheet::Read::label2col ("%_#"), undef, "Col %_# eq undef");
# Some illegal rows () calls
for (undef, "", " ", 0, 1, [], {}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/200_csv.t
new/Spreadsheet-Read-0.94/t/200_csv.t
--- old/Spreadsheet-Read-0.93/t/200_csv.t 2021-02-25 11:32:38.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/200_csv.t 2025-04-07 11:05:01.000000000
+0200
@@ -47,8 +47,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_m.csv"), "Read/Parse M\$ csv file");
@@ -63,8 +63,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_x.csv", sep => "=", quote => "_"),
@@ -80,8 +80,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
foreach my $attr ("strip", "trim") {
@@ -171,9 +171,9 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$r][$c], "", "Unformatted cell $cell");
+ is ($csv->[1]{cell}[$r][$c], "", "Unformatted cell $cell");
my $llec = cr2cell ($r, $c);
- is ($csv->[1]{$llec}, "", "Formatted cell $cell");
+ is ($csv->[1]{$llec}, "", "Formatted cell $cell");
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/202_csv.t
new/Spreadsheet-Read-0.94/t/202_csv.t
--- old/Spreadsheet-Read-0.93/t/202_csv.t 2024-12-31 09:41:37.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/202_csv.t 2025-04-07 11:05:32.000000000
+0200
@@ -40,8 +40,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
is ($csv->[0]{sepchar}, ",", "{sepchar}");
is ($csv->[0]{quote}, '"', "{quote}");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/203_csv.t
new/Spreadsheet-Read-0.94/t/203_csv.t
--- old/Spreadsheet-Read-0.93/t/203_csv.t 2017-08-15 17:27:52.000000000
+0200
+++ new/Spreadsheet-Read-0.94/t/203_csv.t 2025-04-07 11:05:48.000000000
+0200
@@ -51,8 +51,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_m.csv", sep => ";"), "Read/Parse M\$
csv file");
@@ -67,8 +67,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_x.csv", sep => "=", quote => "_"),
@@ -84,8 +84,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
my $data = "a,b,c\n1,2,3\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/204_csv.t
new/Spreadsheet-Read-0.94/t/204_csv.t
--- old/Spreadsheet-Read-0.93/t/204_csv.t 2016-11-27 12:25:14.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/204_csv.t 2025-04-07 11:05:59.000000000
+0200
@@ -47,8 +47,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
my @row = ("A3", "", "C3", "D3", (undef) x 15);
@@ -67,8 +67,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataCSV ("files/test_x.txt", sep => "=", quote => "_"),
@@ -84,8 +84,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
unless ($ENV{AUTOMATED_TESTING}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/205_csv.t
new/Spreadsheet-Read-0.94/t/205_csv.t
--- old/Spreadsheet-Read-0.93/t/205_csv.t 2025-02-26 16:28:53.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/205_csv.t 2025-04-07 11:06:13.000000000
+0200
@@ -5,7 +5,7 @@
# OO version of 200_csv.t
-my $tests = 271;
+my $tests = 275;
use Test::More;
require Test::NoWarnings;
@@ -71,11 +71,13 @@
is ($sheet->row (-55), undef, "No such row -55");
is ($sheet->row ( 0), undef, "No such row 0");
-is_deeply ([$sheet->cellcolumn (1)], ["A1","A2","A3","A4",""], "col 1");
+is_deeply ([$sheet->cellcolumn ( 1)], ["A1","A2","A3","A4",""], "col 1");
+is_deeply ([$sheet->cellcolumn ("A")], ["A1","A2","A3","A4",""], "col 1");
is ($sheet->cellcolumn (255), undef, "No such col 255");
is ($sheet->cellcolumn (-55), undef, "No such col -55");
is ($sheet->cellcolumn ( 0), undef, "No such col 0");
-is_deeply ([$sheet->column (1)], ["A1","A2","A3","A4",""], "col 1");
+is_deeply ([$sheet->column (1)], ["A1","A2","A3","A4",""], "col 1");
+is_deeply ([$sheet->column ("A")], ["A1","A2","A3","A4",""], "col 1");
is ($sheet->column (255), undef, "No such col 255");
is ($sheet->column (-55), undef, "No such col -55");
is ($sheet->column ( 0), undef, "No such col 0");
@@ -95,10 +97,10 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = $csv->cell2cr ($cell);
- is ($sheet->{cell}[$c][$r], "", "Unformatted cell $cell
direct");
- is ($sheet->{$cell}, "", "Formatted cell $cell direct");
- is ($sheet->cell ($c, $r), "", "Unformatted cell $cell method");
- is ($sheet->cell ($cell), "", "Formatted cell $cell method");
+ is ($sheet->{cell}[$c][$r], "", "Unformatted cell $cell
direct");
+ is ($sheet->{$cell}, "", "Formatted cell $cell direct");
+ is ($sheet->cell ($c, $r), "", "Unformatted cell $cell method");
+ is ($sheet->cell ($cell), "", "Formatted cell $cell method");
}
ok ($csv = Spreadsheet::Read->new ("files/test_m.csv"), "Read/Parse M\$
csv file");
@@ -114,8 +116,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = $sheet->cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = Spreadsheet::Read->new ("files/test_x.csv", sep => "=", quote =>
"_"),
@@ -131,8 +133,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
{ # RT#74976 - Error Received when reading empty sheets
@@ -223,8 +225,10 @@
ok ($csv->add ("files/test.csv", label => "Test"), "Add with label");
is_deeply ([ $csv->sheets ], [qw( files/test.csv files/test.csv[2] Test )],
"Sheet names");
-is ($csv->col2label (4), "D", "col2label as book method");
-is ($csv->sheet (1)->col2label (27), "AA", "col2label as sheet method");
+is ($csv->col2label (4), "D", "col2label as book method");
+is ($csv->sheet (1)->col2label (27), "AA", "col2label as sheet method");
+is ($csv->label2col ("D"), 4, "label2col as book method");
+is ($csv->sheet (1)->label2col ("AA"), 27, "label2col as sheet method");
is_deeply ($csv->sheet (1)->range ("A2:B3"), {
A2 => "A2", A3 => "A3", B2 => "B2", B3 => "" }, "range (A2:B3)");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/210_csv.t
new/Spreadsheet-Read-0.94/t/210_csv.t
--- old/Spreadsheet-Read-0.93/t/210_csv.t 2018-01-22 09:17:41.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/210_csv.t 2025-04-07 11:06:24.000000000
+0200
@@ -49,8 +49,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_m.csv"), "Read/Parse M\$ csv file");
@@ -65,8 +65,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_x.csv", sep => "=", quote => "_"),
@@ -82,8 +82,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
{ # RT#74976 - Error Received when reading empty sheets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/212_csv.t
new/Spreadsheet-Read-0.94/t/212_csv.t
--- old/Spreadsheet-Read-0.93/t/212_csv.t 2024-12-31 09:39:43.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/212_csv.t 2025-04-07 11:06:29.000000000
+0200
@@ -39,8 +39,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
is ($csv->[0]{sepchar}, ",", "{sepchar}");
is ($csv->[0]{quote}, '"', "{quote}");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/213_csv.t
new/Spreadsheet-Read-0.94/t/213_csv.t
--- old/Spreadsheet-Read-0.93/t/213_csv.t 2016-11-27 12:25:25.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/213_csv.t 2025-04-07 11:06:41.000000000
+0200
@@ -53,8 +53,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_m.csv", sep => ";"), "Read/Parse M\$
csv file");
@@ -69,8 +69,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_x.csv", sep => "=", quote => "_"),
@@ -86,8 +86,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
unless ($ENV{AUTOMATED_TESTING}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/214_csv.t
new/Spreadsheet-Read-0.94/t/214_csv.t
--- old/Spreadsheet-Read-0.93/t/214_csv.t 2025-02-26 16:04:33.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/214_csv.t 2025-04-07 11:06:50.000000000
+0200
@@ -49,8 +49,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
my @row = ("A3", "", "C3", "D3", (undef) x 15);
@@ -69,8 +69,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataCSV ("files/test_x.txt", sep => "=", quote => "_"),
@@ -86,8 +86,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
unless ($ENV{AUTOMATED_TESTING}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/220_csv.t
new/Spreadsheet-Read-0.94/t/220_csv.t
--- old/Spreadsheet-Read-0.93/t/220_csv.t 2018-01-22 09:20:06.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/220_csv.t 2025-04-07 11:06:58.000000000
+0200
@@ -49,8 +49,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_m.csv"), "Read/Parse M\$ csv file");
@@ -65,8 +65,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadData ("files/test_x.csv", sep => "=", quote => "_"),
@@ -82,8 +82,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
{ # RT#74976 - Error Received when reading empty sheets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/222_csv.t
new/Spreadsheet-Read-0.94/t/222_csv.t
--- old/Spreadsheet-Read-0.93/t/222_csv.t 2015-06-25 18:39:28.000000000
+0200
+++ new/Spreadsheet-Read-0.94/t/222_csv.t 2025-04-07 11:07:04.000000000
+0200
@@ -40,8 +40,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
is ($csv->[0]{sepchar}, ",", "{sepchar}");
is ($csv->[0]{quote}, '"', "{quote}");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/223_csv.t
new/Spreadsheet-Read-0.94/t/223_csv.t
--- old/Spreadsheet-Read-0.93/t/223_csv.t 2016-11-27 12:25:45.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/223_csv.t 2025-04-07 11:07:14.000000000
+0200
@@ -53,8 +53,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_m.csv", sep => ";"), "Read/Parse M\$
csv file");
@@ -69,8 +69,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataStream ("files/test_x.csv", sep => "=", quote => "_"),
@@ -86,8 +86,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
unless ($ENV{AUTOMATED_TESTING}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/224_csv.t
new/Spreadsheet-Read-0.94/t/224_csv.t
--- old/Spreadsheet-Read-0.93/t/224_csv.t 2016-11-27 12:25:48.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/224_csv.t 2025-04-07 11:07:24.000000000
+0200
@@ -49,8 +49,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
my @row = ("A3", "", "C3", "D3", (undef) x 15);
@@ -69,8 +69,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
ok ($csv = ReadDataCSV ("files/test_x.txt", sep => "=", quote => "_"),
@@ -86,8 +86,8 @@
ok (1, "Undefined fields");
foreach my $cell (qw( B3 C1 C2 D2 D4 )) {
my ($c, $r) = cell2cr ($cell);
- is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
- is ($csv->[1]{$cell}, "", "Formatted cell $cell");
+ is ($csv->[1]{cell}[$c][$r], "", "Unformatted cell $cell");
+ is ($csv->[1]{$cell}, "", "Formatted cell $cell");
}
unless ($ENV{AUTOMATED_TESTING}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/605_perc.t
new/Spreadsheet-Read-0.94/t/605_perc.t
--- old/Spreadsheet-Read-0.93/t/605_perc.t 2016-06-17 08:49:05.000000000
+0200
+++ new/Spreadsheet-Read-0.94/t/605_perc.t 2025-06-30 07:30:31.000000000
+0200
@@ -19,11 +19,17 @@
foreach my $row (1 .. 19) {
my @type = map { $ss->{attr}[$_][$row]{type} } 0 .. 3;
- is ($type[1], "numeric", "Type A$row numeric");
- foreach my $col (2, 3) { # Allow numeric for percentage in main test
- my $cell = ("A".."C")[$col - 1].$row;
- my $expect = $type[$col] eq "numeric" ? "numeric" : "percentage";
- is ($type[$col], $expect, "Type B$row percentage");
+
+ SKIP: {
+ defined $type[1] or
+ skip "$xls->[0]{parser} $xls->[0]{version} does not reliably
support types", 3;
+
+ is ($type[1], "numeric", "Type A$row numeric");
+ foreach my $col (2, 3) { # Allow numeric for percentage in main
test
+ my $cell = ("A".."C")[$col - 1].$row;
+ my $expect = $type[$col] eq "numeric" ? "numeric" : "percentage";
+ is ($type[$col], $expect, "Type B$row percentage");
+ }
}
SKIP: {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/607_merged.t
new/Spreadsheet-Read-0.94/t/607_merged.t
--- old/Spreadsheet-Read-0.93/t/607_merged.t 2020-07-09 11:30:39.000000000
+0200
+++ new/Spreadsheet-Read-0.94/t/607_merged.t 2025-06-30 07:37:13.000000000
+0200
@@ -15,7 +15,13 @@
$parser eq "Spreadsheet::XLSX" and
plan skip_all => "No merged cell support in $parser";
-ok (my $ss = ReadData ("files/merged.xlsx", attr => 1)->[1], "Read merged
xlsx");
+my $xls = ReadData ("files/merged.xlsx", attr => 1);
+my $ss = $xls->[1];
+
+defined $ss->{attr}[1][1]{merged} or
+ plan skip_all => "$xls->[0]{parser} $xls->[0]{version} does not support
merge information";
+
+ok ($ss, "Read merged xlsx");
is ($ss->{attr}[1][1]{merged}, 0, "unmerged A1");
is ($ss->{attr}[2][1]{merged}, 1, " merged B1");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Spreadsheet-Read-0.93/t/634_dates.t
new/Spreadsheet-Read-0.94/t/634_dates.t
--- old/Spreadsheet-Read-0.93/t/634_dates.t 2023-11-01 09:39:14.000000000
+0100
+++ new/Spreadsheet-Read-0.94/t/634_dates.t 2025-06-30 07:17:30.000000000
+0200
@@ -18,8 +18,8 @@
ok (my $xls = ReadData ("files/Dates.xlsx",
attr => 1, dtfmt => "yyyy-mm-dd"), "Excel Date testcase");
-ok (my $ss = $xls->[1], "sheet");
-is ($ss->{attr}, undef, "attr");
+ok (my $ss = $xls->[1], "sheet");
+is_deeply ($ss->{attr}, [], "attr");
ok (1, "$xls->[0]{parser} $xls->[0]{version} does not support formats");
++++++ _scmsync.obsinfo ++++++
mtime: 1765344969
commit: a9677e8d81c05126c72517e228a4020e2cffcc00c9807231b05615bfb3c62531
url: https://src.opensuse.org/perl/perl-Spreadsheet-Read.git
revision: a9677e8d81c05126c72517e228a4020e2cffcc00c9807231b05615bfb3c62531
projectscmsync: https://src.opensuse.org/perl/_ObsPrj
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2025-12-15 17:02:33.000000000 +0100
@@ -0,0 +1 @@
+.osc