Просмотр исходного кода

dpkg-architecture: Perform -L actions inside argument processing loop

To preserve the same behaviour move the initialization of host and build
variables after the argument processing loop.
Guillem Jover лет назад: 18
Родитель
Сommit
9b07d03f0f
2 измененных файлов с 46 добавлено и 39 удалено
  1. 7 0
      ChangeLog
  2. 39 39
      scripts/dpkg-architecture.pl

+ 7 - 0
ChangeLog

@@ -1,3 +1,10 @@
+2007-11-04  Guillem Jover  <guillem@debian.org>
+
+	* scripts/dpkg-architecture.pl: Move setting of host and build arch
+	variables after argument processing. Call list_arches from argument
+	processing loop. Move architecture listing to ...
+	(list_arches): ... here. New function.
+
 2007-11-04  Guillem Jover  <guillem@debian.org>
 2007-11-04  Guillem Jover  <guillem@debian.org>
 
 
 	* scripts/Dpkg/Arch.pm (get_valid_arches): Return an array instead of
 	* scripts/Dpkg/Arch.pm (get_valid_arches): Return an array instead of

+ 39 - 39
scripts/dpkg-architecture.pl

@@ -67,47 +67,11 @@ Actions:
 "), $progname;
 "), $progname;
 }
 }
 
 
-# Check for -L
-if (grep { m/^-L$/ } @ARGV) {
+sub list_arches()
+{
     foreach my $arch (get_valid_arches()) {
     foreach my $arch (get_valid_arches()) {
 	print "$arch\n";
 	print "$arch\n";
     }
     }
-    exit unless $#ARGV;
-}
-
-# Set default values:
-
-chomp (my $deb_build_arch = `dpkg --print-architecture`);
-&syserr("dpkg --print-architecture failed") if $?>>8;
-my $deb_build_gnu_type = debtriplet_to_gnutriplet(debarch_to_debtriplet($deb_build_arch));
-
-# Default host: Current gcc.
-my $gcc = `\${CC:-gcc} -dumpmachine`;
-if ($?>>8) {
-    warning(_g("Couldn't determine gcc system type, falling back to default (native compilation)"));
-    $gcc = '';
-} else {
-    chomp $gcc;
-}
-
-my $deb_host_arch = undef;
-my $deb_host_gnu_type;
-
-if ($gcc ne '') {
-    my (@deb_host_archtriplet) = gnutriplet_to_debtriplet($gcc);
-    $deb_host_arch = debtriplet_to_debarch(@deb_host_archtriplet);
-    unless (defined $deb_host_arch) {
-	warning(_g("Unknown gcc system type %s, falling back to default " .
-	           "(native compilation)"), $gcc);
-	$gcc = '';
-    } else {
-	$gcc = $deb_host_gnu_type = debtriplet_to_gnutriplet(@deb_host_archtriplet);
-    }
-}
-if (!defined($deb_host_arch)) {
-    # Default host: Native compilation.
-    $deb_host_arch = $deb_build_arch;
-    $deb_host_gnu_type = $deb_build_gnu_type;
 }
 }
 
 
 
 
@@ -144,7 +108,8 @@ while (@ARGV) {
        $action = 'c';
        $action = 'c';
        last;
        last;
     } elsif (m/^-L$/) {
     } elsif (m/^-L$/) {
-       # Handled already
+        list_arches();
+        exit unless @ARGV;
     } elsif (m/^-(h|-help)$/) {
     } elsif (m/^-(h|-help)$/) {
        &usage;
        &usage;
        exit 0;
        exit 0;
@@ -156,6 +121,41 @@ while (@ARGV) {
     }
     }
 }
 }
 
 
+# Set default values:
+
+chomp (my $deb_build_arch = `dpkg --print-architecture`);
+&syserr("dpkg --print-architecture failed") if $?>>8;
+my $deb_build_gnu_type = debtriplet_to_gnutriplet(debarch_to_debtriplet($deb_build_arch));
+
+# Default host: Current gcc.
+my $gcc = `\${CC:-gcc} -dumpmachine`;
+if ($?>>8) {
+    warning(_g("Couldn't determine gcc system type, falling back to default (native compilation)"));
+    $gcc = '';
+} else {
+    chomp $gcc;
+}
+
+my $deb_host_arch = undef;
+my $deb_host_gnu_type;
+
+if ($gcc ne '') {
+    my (@deb_host_archtriplet) = gnutriplet_to_debtriplet($gcc);
+    $deb_host_arch = debtriplet_to_debarch(@deb_host_archtriplet);
+    unless (defined $deb_host_arch) {
+	warning(_g("Unknown gcc system type %s, falling back to default " .
+	           "(native compilation)"), $gcc);
+	$gcc = '';
+    } else {
+	$gcc = $deb_host_gnu_type = debtriplet_to_gnutriplet(@deb_host_archtriplet);
+    }
+}
+if (!defined($deb_host_arch)) {
+    # Default host: Native compilation.
+    $deb_host_arch = $deb_build_arch;
+    $deb_host_gnu_type = $deb_build_gnu_type;
+}
+
 if ($req_host_arch ne '' && $req_host_gnu_type eq '') {
 if ($req_host_arch ne '' && $req_host_gnu_type eq '') {
     $req_host_gnu_type = debtriplet_to_gnutriplet(debarch_to_debtriplet($req_host_arch));
     $req_host_gnu_type = debtriplet_to_gnutriplet(debarch_to_debtriplet($req_host_arch));
     die (sprintf(_g("unknown Debian architecture %s, you must specify GNU system type, too"), $req_host_arch)) unless defined $req_host_gnu_type;
     die (sprintf(_g("unknown Debian architecture %s, you must specify GNU system type, too"), $req_host_arch)) unless defined $req_host_gnu_type;