The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changes 015
MANIFEST 12
META.json 039
META.yml 1220
lib/Image/MetaData/JPEG/Segment.pm 11
lib/Image/MetaData/JPEG/Structures.pod 13
lib/Image/MetaData/JPEG/TagLists.pod 66
lib/Image/MetaData/JPEG/data/Tables.pm 66
lib/Image/MetaData/JPEG/parsers/app13.pl 11
lib/Image/MetaData/JPEG.pm 11
lib/Image/MetaData/JPEG.pod 13
t/JPEG_p_podchecker.t 513
12 files changed (This is a version diff) 35110
@@ -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'; }