[libconfig-model-dpkg-perl] 01/03: keep old param order when writing control file
dod at debian.org
dod at debian.org
Fri Sep 29 12:09:55 UTC 2017
This is an automated email from the git hooks/post-receive script.
dod pushed a commit to branch master
in repository libconfig-model-dpkg-perl.
commit b6afff757de9ecb84e1572488e38995e6253738d
Author: Dominique Dumont <dod at debian.org>
Date: Fri Sep 29 13:57:36 2017 +0200
keep old param order when writing control file
Tweak the parameter list used to write the sequence of parameters to
keep the order defined in Debian policy even though Standards-Version
must be *before* Priority (because of warp mechanism).
This is a bit of a hack that will probably evolve later.
---
lib/Config/Model/Backend/Dpkg/Control.pm | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/lib/Config/Model/Backend/Dpkg/Control.pm b/lib/Config/Model/Backend/Dpkg/Control.pm
index bad3432..9986784 100644
--- a/lib/Config/Model/Backend/Dpkg/Control.pm
+++ b/lib/Config/Model/Backend/Dpkg/Control.pm
@@ -214,12 +214,31 @@ sub write {
return 1;
}
-sub package_spec {
- my ( $self, $node ) = @_ ;
+sub _re_order ($list, $move_after) {
+ my $i = 0;
+ while ( $i < $move_after->@* ) {
+ my $k = $move_after->[$i++];
+ my $v = $move_after->[$i++];
+ my ($ik, $iv);
+ my $j = 0;
+ map { $ik = $j if $_ eq $k; $iv = $j if $_ eq $v; $j++ } @$list;
+ next unless defined $ik and defined $iv;
+ splice @$list, $ik, 1; # remove $k from list
+ splice @$list, $iv, 0, $k; # add back $k after $v
+ }
+}
+
+my @move_after = (
+ 'Standards-Version' => 'Built-Using',
+);
+
+sub package_spec ( $self, $node ) {
+ my @list = $node->get_element_name;
+ _re_order(\@list, \@move_after);
my @section ;
my $description_ref ;
- foreach my $elt ($node->get_element_name ) {
+ foreach my $elt ( @list ) {
my $type = $node->element_type($elt) ;
my $elt_obj = $node->fetch_element($elt) ;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libconfig-model-dpkg-perl.git
More information about the Pkg-perl-cvs-commits
mailing list