@@ -1,3 +1,18 @@
+2014-05-12 Ricardo Signes <rjbs@cpan.org>
+
+ * avoid useless use of ? modifier on fixed-length {n} repetition
+ in regex; avoids a warning in 5.20.0
+
+2014-02-04 Ricardo Signes <rjbs@cpan.org>
+
+ * avoid having output corrupted by assignment to $,
+
+2014-02-02 Ricardo Signes <rjbs@cpan.org>
+
+ * only run Pod::Checker tests when releasing
+ * encode all source at UTF-8, including comments
+ * add =encoding directives to Pod where needed
+
2009-06-18 Stefano Bettelli <bettelli@cpan.org>
* lib/Image/MetaData/JPEG.pm: setting $VERSION to 0.153, and
@@ -62,4 +62,5 @@ lib/Image/MetaData/JPEG/access/various.pl
lib/Image/MetaData/JPEG/access/comments.pl
lib/Image/MetaData/JPEG/access/app1_exif.pl
lib/Image/MetaData/JPEG/access/app13.pl
-META.yml
+META.yml Module YAML meta-data (added by MakeMaker)
+META.json Module JSON meta-data (added by MakeMaker)
@@ -0,0 +1,39 @@
+{
+ "abstract" : "Perl extension for showing/modifying JPEG (meta)data.",
+ "author" : [
+ "Stefano Bettelli <bettelli@cpan.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.94, CPAN::Meta::Converter version 2.140640",
+ "license" : [
+ "unknown"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Image-MetaData-JPEG",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {}
+ }
+ },
+ "release_status" : "stable",
+ "version" : "0.156"
+}
@@ -1,13 +1,21 @@
---- #YAML:1.0
-name: Image-MetaData-JPEG
-version: 0.153
-abstract: Perl extension for showing/modifying JPEG (meta)data.
-license: ~
-author:
- - Stefano Bettelli <bettelli@cpan.org>
-generated_by: ExtUtils::MakeMaker version 6.42
-distribution_type: module
-requires:
+---
+abstract: 'Perl extension for showing/modifying JPEG (meta)data.'
+author:
+ - 'Stefano Bettelli <bettelli@cpan.org>'
+build_requires:
+ ExtUtils::MakeMaker: '0'
+configure_requires:
+ ExtUtils::MakeMaker: '0'
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.94, CPAN::Meta::Converter version 2.140640'
+license: unknown
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.3.html
- version: 1.3
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: '1.4'
+name: Image-MetaData-JPEG
+no_index:
+ directory:
+ - t
+ - inc
+requires: {}
+version: '0.156'
@@ -259,7 +259,7 @@ sub output_segment_data {
$preamble .= pack("n", 2 + $length)
unless $name =~ /SOI|EOI|RST|ECS|Post-EOI/;
# output the preamble and the data buffer (return the status)
- return print {$out} $preamble, $this->data(0, $length);
+ return print {$out} $preamble . $this->data(0, $length);
}
###########################################################
@@ -10,6 +10,8 @@
# type "perldoc <name_of_this_file>". #
###########################################################
+=encoding utf-8
+
=head1 NAME
Image::MetaData::JPEG::Structures - This document describes the structure
@@ -630,7 +632,7 @@ JPEG Segments):
The reference document for the IPTC standard is:
B<"IPTC-NAA: Information Interchange Model", version 4, 1-Jul-1999,
- Comité International des Télécommunications de Presse>
+ Comité International des Télécommunications de Presse>
=head1 AUTHOR
@@ -733,8 +733,8 @@ C-strings).
2:xx datasets from the application record (editorial tags)
-------------------------------------------------------------------------
0 RecordVersion N [ 2 ] binary, always 2 in JPEGs ?
- 3 ObjectTypeReference N [ 3-67 ] /\d{2}?:[\w\s]{0,64}?/
- 4 ObjectAttributeReference [ 4-68 ] /\d{3}?:[\w\s]{0,64}?/
+ 3 ObjectTypeReference N [ 3-67 ] /\d{2}:[\w\s]{0,64}?/
+ 4 ObjectAttributeReference [ 4-68 ] /\d{3}:[\w\s]{0,64}?/
5 ObjectName N [ <=64 ] line (see note 5)
7 EditStatus N [ <=64 ] line (see note 5)
8 EditorialUpdate N [ 2 ] /01/
@@ -767,7 +767,7 @@ C-strings).
90 City N [ <=32 ] line (see note 5)
92 SubLocation N [ <=32 ] line (see note 5)
95 Province/State N [ <=32 ] line (see note 5)
- 100 Country/PrimaryLocationCode N [ 3 ] /[A-Z]{3}?/
+ 100 Country/PrimaryLocationCode N [ 3 ] /[A-Z]{3}/
101 Country/PrimaryLocationName N [ <=64 ] line (see note 5)
103 OriginalTransmissionReference N [ <=32 ] line (see note 5)
105 Headline N [ <=256] line (see note 5)
@@ -782,8 +782,8 @@ C-strings).
131 ImageOrientation N [ 1 ] /P|L|S/
135 LanguageIdentifier N [ 2-3 ] /[a-zA-Z]{2,3}?/
150 AudioType N [ 2 ] /[012][ACMQRSTVW]/
- 151 AudioSamplingRate N [ 6 ] /\d{6}?/
- 152 AudioSamplingResolution N [ 2 ] /\d{2}?/
+ 151 AudioSamplingRate N [ 6 ] /\d{6}/
+ 152 AudioSamplingResolution N [ 2 ] /\d{2}/
153 AudioDuration N [ 6 ] duration (see note 6)
154 AudioOutcue N [ <=64 ] line (see note 5)
200 ObjDataPreviewFileFormat N [ 2 ] invalid, binary (see 1:20)
@@ -822,7 +822,7 @@ C-strings).
6) A "duration" is stored like a "time", but there is no time zone spec;
this means that the string is only six characters wide (see also note 3).
7) The complicated regular expression for the SubjectReference is the
- following: /[$validchar]{1,32}?:[01]\d{7}?(:[$validchar\s]{0,64}?){3}?/,
+ following: /[$validchar]{1,32}?:[01]\d{7}(:[$validchar\s]{0,64}?){3}/,
where $validchar is '\040-\051\053-\071\073-\076\100-\176'.
=head1 AUTHOR
@@ -739,7 +739,7 @@ my $IPTC_re_date = $re_date; # CCYYMMDD full #
my $IPTC_re_dura = $re_time; # HHMMSS #
my $IPTC_re_time = $IPTC_re_dura . '[\+-]' . $re_zone; # HHMMSS+/-HHMM #
my $vchr = '\040-\051\053-\071\073-\076\100-\176'; # (SubjectRef.) #
-my $IPTC_re_sure='['.$vchr.']{1,32}?:[01]\d{7}?(:['.$vchr.'\s]{0,64}?){3}?'; #
+my $IPTC_re_sure='['.$vchr.']{1,32}?:[01]\d{7}(:['.$vchr.'\s]{0,64}?){3}'; #
#--- Mandatory records ------------------------------------------------------#
my $HASH_IPTC_MANDATORY_1 = {'ModelVersion' => "\000\004" }; #
my $HASH_IPTC_MANDATORY_2 = {'RecordVersion' => "\000\002" }; #
@@ -762,8 +762,8 @@ my $HASH_IPTC_GENERAL_1 = #
#--- Legal records' list ( datasets 2:xx ) ----------------------------------#
my $HASH_IPTC_GENERAL_2 = #
{0 => ['RecordVersion', 'N', 2, 2, 'binary' ], #
- 3 => ['ObjectTypeReference', 'N', 3, 67, '\d{2}?:[\w\s]{0,64}?'], #
- 4 => ['ObjectAttributeReference', ' ', 4, 68, '\d{3}?:[\w\s]{0,64}?'], #
+ 3 => ['ObjectTypeReference', 'N', 3, 67, '\d{2}:[\w\s]{0,64}?' ], #
+ 4 => ['ObjectAttributeReference', ' ', 4, 68, '\d{3}:[\w\s]{0,64}?' ], #
5 => ['ObjectName', 'N', 1, 64, $IPTC_re_line ], #
7 => ['EditStatus', 'N', 1, 64, $IPTC_re_line ], #
8 => ['EditorialUpdate', 'N', 2, 2, '01' ], #
@@ -796,7 +796,7 @@ my $HASH_IPTC_GENERAL_2 = #
90 => ['City', 'N', 1, 32, $IPTC_re_line ], #
92 => ['SubLocation', 'N', 1, 32, $IPTC_re_line ], #
95 => ['Province/State', 'N', 1, 32, $IPTC_re_line ], #
- 100 => ['Country/PrimaryLocationCode', 'N', 3, 3, '[A-Z]{3}?' ], #
+ 100 => ['Country/PrimaryLocationCode', 'N', 3, 3, '[A-Z]{3}' ], #
101 => ['Country/PrimaryLocationName', 'N', 1, 64, $IPTC_re_line ], #
103 => ['OriginalTransmissionReference','N',1, 32, $IPTC_re_line ], #
105 => ['Headline', 'N', 1,256, $IPTC_re_line ], #
@@ -811,8 +811,8 @@ my $HASH_IPTC_GENERAL_2 = #
131 => ['ImageOrientation', 'N', 1, 1, '[PLS]' ], #
135 => ['LanguageIdentifier', 'N', 2, 3, '[a-zA-Z]{2,3}?' ], #
150 => ['AudioType', 'N', 2, 2, '[012][ACMQRSTVW]' ], #
- 151 => ['AudioSamplingRate', 'N', 6, 6, '\d{6}?' ], #
- 152 => ['AudioSamplingResolution', 'N', 2, 2, '\d{2}?' ], #
+ 151 => ['AudioSamplingRate', 'N', 6, 6, '\d{6}' ], #
+ 152 => ['AudioSamplingResolution', 'N', 2, 2, '\d{2}' ], #
153 => ['AudioDuration', 'N', 6, 6, $IPTC_re_dura ], #
154 => ['AudioOutcue', 'N', 1, 64, $IPTC_re_line ], #
200 => ['ObjDataPreviewFileFormat', 'N', 2, 2, 'invalid,binary' ], #
@@ -183,7 +183,7 @@ sub parse_resource_data_block {
# order, but this rule is currently not enforced here. #
#=========================================================#
# Ref: "IPTC-NAA: Information Interchange Model Version 4"#
-# Comité Internat. des Télécommunications de Presse. #
+# Comité Internat. des Télécommunications de Presse. #
###########################################################
sub parse_IPTC_dataset {
my ($this, $offset) = @_;
@@ -12,7 +12,7 @@ no integer;
use strict;
use warnings;
-our $VERSION = '0.153';
+our $VERSION = '0.156';
###########################################################
# These simple methods should be used instead of standard #
@@ -10,6 +10,8 @@
# type "perldoc <name_of_this_file>". #
###########################################################
+=encoding utf-8
+
=head1 NAME
Image::MetaData::JPEG - Perl extension for showing/modifying JPEG (meta)data.
@@ -1541,7 +1543,7 @@ expanded. The output is nicely formatted, with indentation and
colouration; this program is a great tool for inspecting a JPEG/TIFF
structure while debugging.
-=item "libexif" by Lutz Müller
+=item "libexif" by Lutz Müller
This is a library, written in C, for parsing, editing, and saving Exif
data. All Exif tags described in Exif standard 2.1 are supported. Libexif
@@ -5,11 +5,19 @@ BEGIN { my $root = "lib/Image/MetaData";
"$name/TagLists.pod",
"$name/MakerNotes.pod"); }
-BEGIN { my $Available = undef;
- my $DoTests = "use Test::More tests => " . scalar @::docfiles;
- my $SkipTests = "use Test::More skip_all => 'Pod::Checker unavailable'";
- eval { require Pod::Checker; $Available = 'yes'; };
- if ($Available) { eval "$DoTests"; } else { eval "$SkipTests"; } }
+use Test::More;
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ plan skip_all => "test only run during release process";
+ }
+ my $Available = eval { require Pod::Checker; 1 };
+ if (! $Available) {
+ plan skip_all => 'Pod::Checker unavailable';
+ }
+
+ plan tests => 0+@::docfiles;
+}
BEGIN { require 't/test_setup.pl'; }