The branch, master has been updated
       via  a7c9cb9869838f92e98a71ec2ba1cc641cbeac44 (commit)
      from  cb6376d061d17c5762552a26a9385bc283ae246d (commit)


- Shortlog ------------------------------------------------------------
a7c9cb9 Add new module Dpkg::Fields replacing parts of controllib.pl

Summary of changes:
 ChangeLog                   |    9 +++++++++
 debian/changelog            |    2 ++
 debian/dpkg-dev.install     |    1 +
 scripts/Dpkg/Fields.pm      |   40 ++++++++++++++++++++++++++++++++++++++++
 scripts/Makefile.am         |    1 +
 scripts/changelog/debian.pl |    1 +
 scripts/controllib.pl       |   31 +------------------------------
 scripts/dpkg-genchanges.pl  |    1 +
 scripts/dpkg-gencontrol.pl  |    1 +
 scripts/dpkg-shlibdeps.pl   |    1 +
 scripts/dpkg-source.pl      |    1 +
 11 files changed, 59 insertions(+), 30 deletions(-)
-----------------------------------------------------------------------
Details of changes:

commit a7c9cb9869838f92e98a71ec2ba1cc641cbeac44
Author: Raphael Hertzog <[EMAIL PROTECTED]>
Date:   Wed Nov 21 17:00:41 2007 +0100

    Add new module Dpkg::Fields replacing parts of controllib.pl
    
    New module containing 3 functions moved out of controllib.pl (capit(),
    set_field_importance(), sort_by_field_importance()). Adapt all the scripts
    accordingly.

diff --git a/ChangeLog b/ChangeLog
index 8ec8c25..684e269 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,15 @@
        empty dependency fields are correctly handled.
        * scripts/Makefile.am: Include the new data files required by the
        tests above.
+       * scrips/Dpkg/Fields.pm: New module containing 3 functions moved
+       out of controllib.pl (capit(), set_field_importance(),
+       sort_by_field_importance()).
+       * scripts/controllib.pl: Removed the 3 functions above.
+       * scripts/dpkg-shlibdeps.pl: Use Dpkg::Fields for capit().
+       * scripts/dpkg-genchanges.pl: Use Dpkg::Fields for capit() and
+       set_field_importance().
+       * scripts/dpkg-gencontrol.pl: Likewise.
+       * scripts/dpkg-source.pl: Likewise.
 
 2007-11-20  Guillem Jover  <[EMAIL PROTECTED]>
 
diff --git a/debian/changelog b/debian/changelog
index 63e2cdd..70832f5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ dpkg (1.14.10) UNRELEASED; urgency=low
   [ Raphael Hertzog ]
   * dpkg-shlibdeps now correctly identify private libraries (avoid many
     warnings with perl/python modules).
+  * Move capit() to a Dpkg::Fields module and use it in dpkg-shlibdeps.
+    Closes: #452262
 
   [ Updated man pages translations ]
   * Swedish (Peter Karlsson)
diff --git a/debian/dpkg-dev.install b/debian/dpkg-dev.install
index 8124ae5..8d2a612 100644
--- a/debian/dpkg-dev.install
+++ b/debian/dpkg-dev.install
@@ -64,6 +64,7 @@ usr/share/perl5/Dpkg/Arch.pm
 usr/share/perl5/Dpkg/BuildOptions.pm
 usr/share/perl5/Dpkg/ErrorHandling.pm
 usr/share/perl5/Dpkg/Deps.pm
+usr/share/perl5/Dpkg/Fields.pm
 usr/share/perl5/Dpkg/Path.pm
 usr/share/perl5/Dpkg/Shlibs
 usr/share/perl5/Dpkg/Shlibs.pm
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
new file mode 100644
index 0000000..7602ac1
--- /dev/null
+++ b/scripts/Dpkg/Fields.pm
@@ -0,0 +1,40 @@
+package Dpkg::Fields;
+
+use strict;
+use warnings;
+
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(capit set_field_importance sort_field_by_importance);
+
+sub capit {
+    my @pieces = map { ucfirst(lc) } split /-/, $_[0];
+    return join '-', @pieces;
+}
+
+our %fieldimps;
+
+sub set_field_importance(@)
+{
+    my @fields = @_;
+    my $i = 1;
+
+    grep($fieldimps{$_} = $i++, @fields);
+}
+
+sub sort_field_by_importance($$)
+{
+    my ($a, $b) = @_;
+
+    if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
+       $fieldimps{$a} <=> $fieldimps{$b};
+    } elsif (defined($fieldimps{$a})) {
+       -1;
+    } elsif (defined($fieldimps{$b})) {
+       1;
+    } else {
+       $a cmp $b;
+    }
+}
+
+1;
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 1e161a0..30ce405 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -78,6 +78,7 @@ nobase_dist_perllib_DATA = \
        Dpkg/BuildOptions.pm \
        Dpkg/ErrorHandling.pm \
        Dpkg/Deps.pm \
+       Dpkg/Fields.pm \
        Dpkg/Gettext.pm \
        Dpkg/Path.pm \
        Dpkg/Shlibs.pm \
diff --git a/scripts/changelog/debian.pl b/scripts/changelog/debian.pl
index 85a0b2e..2760c14 100755
--- a/scripts/changelog/debian.pl
+++ b/scripts/changelog/debian.pl
@@ -6,6 +6,7 @@ use warnings;
 use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(error internerr usageerr);
+use Dpkg::Fields qw(set_field_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
diff --git a/scripts/controllib.pl b/scripts/controllib.pl
index 8c54fbe..6e2a4b4 100755
--- a/scripts/controllib.pl
+++ b/scripts/controllib.pl
@@ -9,6 +9,7 @@ use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(warning error failure internerr syserr subprocerr);
 use Dpkg::Arch qw(get_host_arch debarch_is);
+use Dpkg::Fields qw(capit sort_field_by_importance);
 
 textdomain("dpkg-dev");
 
@@ -74,11 +75,6 @@ sub getfowner
     return @fowner;
 }
 
-sub capit {
-    my @pieces = map { ucfirst(lc) } split /-/, $_[0];
-    return join '-', @pieces;
-}
-
 sub substvars {
     my ($v) = @_;
     my $lhs;
@@ -105,31 +101,6 @@ sub substvars {
     return $v;
 }
 
-my %fieldimps;
-
-sub set_field_importance(@)
-{
-    my @fields = @_;
-    my $i = 1;
-
-    grep($fieldimps{$_} = $i++, @fields);
-}
-
-sub sort_field_by_importance($$)
-{
-    my ($a, $b) = @_;
-
-    if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
-       $fieldimps{$a} <=> $fieldimps{$b};
-    } elsif (defined($fieldimps{$a})) {
-       -1;
-    } elsif (defined($fieldimps{$b})) {
-       1;
-    } else {
-       $a cmp $b;
-    }
-}
-
 sub outputclose {
     my ($varlistfile) = @_;
 
diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl
index 5cc61e4..c2dbb7d 100755
--- a/scripts/dpkg-genchanges.pl
+++ b/scripts/dpkg-genchanges.pl
@@ -10,6 +10,7 @@ use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(warning error failure unknown internerr syserr
                            subprocerr usageerr);
 use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
+use Dpkg::Fields qw(capit set_field_importance sort_field_by_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
diff --git a/scripts/dpkg-gencontrol.pl b/scripts/dpkg-gencontrol.pl
index 623809f..d749360 100755
--- a/scripts/dpkg-gencontrol.pl
+++ b/scripts/dpkg-gencontrol.pl
@@ -11,6 +11,7 @@ use Dpkg::ErrorHandling qw(warning error failure unknown 
internerr syserr
                            subprocerr usageerr);
 use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
 use Dpkg::Deps qw(@pkg_dep_fields %dep_field_type);
+use Dpkg::Fields qw(capit set_field_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 1599aa6..8902b94 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -14,6 +14,7 @@ use Dpkg::Shlibs qw(find_library);
 use Dpkg::Shlibs::Objdump;
 use Dpkg::Shlibs::SymbolFile;
 use Dpkg::Arch qw(get_host_arch);
+use Dpkg::Fields qw(capit);
 
 our $host_arch= get_host_arch();
 
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index d9542a9..b82b9d1 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -10,6 +10,7 @@ use Dpkg::ErrorHandling qw(warning warnerror error failure 
unknown
                            $warnable_error $quiet_warnings);
 use Dpkg::Arch qw(debarch_eq);
 use Dpkg::Deps qw(@src_dep_fields %dep_field_type);
+use Dpkg::Fields qw(capit set_field_importance);
 
 my @filesinarchive;
 my %dirincluded;

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to