Quellcode durchsuchen

Stop using the English perl module

Using this module (and $' or $POSTMATCH) implies a performance penalty
that we want to avoid. Thus modifies the few regexes where it's used to
be explicit about the part of the data that we want to retrieve.
Raphaël Hertzog vor 17 Jahren
Ursprung
Commit
d570dcf56c
4 geänderte Dateien mit 47 neuen und 51 gelöschten Zeilen
  1. 5 6
      scripts/Dpkg/Substvars.pm
  2. 28 29
      scripts/dpkg-genchanges.pl
  3. 0 1
      scripts/dpkg-shlibdeps.pl
  4. 14 15
      scripts/dpkg-source.pl

+ 5 - 6
scripts/Dpkg/Substvars.pm

@@ -25,7 +25,6 @@ use Dpkg::ErrorHandling;
 use Dpkg::Gettext;
 
 use POSIX qw(:errno_h);
-use English;
 
 my $maxsubsts = 50;
 
@@ -138,10 +137,10 @@ sub parse {
 	while (<SV>) {
 	    next if m/^\s*\#/ || !m/\S/;
 	    s/\s*\n$//;
-	    m/^(\w[-:0-9A-Za-z]*)\=/ ||
+	    m/^(\w[-:0-9A-Za-z]*)\=(.*)$/ ||
 		error(_g("bad line in substvars file %s at line %d"),
 		      $varlistfile, $.);
-	    $self->{'vars'}{$1} = $';
+	    $self->{'vars'}{$1} = $2;
 	}
 	close(SV);
     } elsif ($! != ENOENT) {
@@ -201,14 +200,14 @@ sub substvars {
     my $rhs = '';
     my $count = 0;
 
-    while ($v =~ m/\$\{([-:0-9a-z]+)\}/i) {
+    while ($v =~ m/^(.*?)\$\{([-:0-9a-z]+)\}(.*)$/si) {
         # If we have consumed more from the leftover data, then
         # reset the recursive counter.
-        $count = 0 if (length($POSTMATCH) < length($rhs));
+        $count = 0 if (length($3) < length($rhs));
 
         $count < $maxsubsts ||
             error(_g("too many substitutions - recursive ? - in \`%s'"), $v);
-        $lhs = $PREMATCH; $vn = $1; $rhs = $POSTMATCH;
+        $lhs = $1; $vn = $2; $rhs = $3;
         if (defined($self->{'vars'}{$vn})) {
             $v = $lhs . $self->{'vars'}{$vn} . $rhs;
 	    $self->no_warn($vn);

+ 28 - 29
scripts/dpkg-genchanges.pl

@@ -5,7 +5,6 @@ use warnings;
 
 use POSIX;
 use POSIX qw(:errno_h :signal_h);
-use English;
 use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::Checksums;
@@ -144,32 +143,32 @@ while (@ARGV) {
         $sourcestyle= $1;
     } elsif (m/^-q$/) {
         $quiet= 1;
-    } elsif (m/^-c/) {
-	$controlfile= $POSTMATCH;
-    } elsif (m/^-l/) {
-	$changelogfile= $POSTMATCH;
-    } elsif (m/^-C/) {
-	$changesdescription= $POSTMATCH;
-    } elsif (m/^-f/) {
-	$fileslistfile= $POSTMATCH;
-    } elsif (m/^-v/) {
-	$since= $POSTMATCH;
-    } elsif (m/^-T/) {
-	$varlistfile= $POSTMATCH;
-    } elsif (m/^-m/) {
-	$forcemaint= $POSTMATCH;
-    } elsif (m/^-e/) {
-	$forcechangedby= $POSTMATCH;
+    } elsif (m/^-c(.*)$/) {
+	$controlfile = $1;
+    } elsif (m/^-l(.*)$/) {
+	$changelogfile = $1;
+    } elsif (m/^-C(.*)$/) {
+	$changesdescription = $1;
+    } elsif (m/^-f(.*)$/) {
+	$fileslistfile = $1;
+    } elsif (m/^-v(.*)$/) {
+	$since = $1;
+    } elsif (m/^-T(.*)$/) {
+	$varlistfile = $1;
+    } elsif (m/^-m(.*)$/) {
+	$forcemaint = $1;
+    } elsif (m/^-e(.*)$/) {
+	$forcechangedby = $1;
     } elsif (m/^-F([0-9a-z]+)$/) {
-        $changelogformat=$1;
-    } elsif (m/^-D([^\=:]+)[=:]/) {
-	$override{$1}= $POSTMATCH;
-    } elsif (m/^-u/) {
-	$uploadfilesdir= $POSTMATCH;
+        $changelogformat = $1;
+    } elsif (m/^-D([^\=:]+)[=:](.*)$/) {
+	$override{$1} = $2;
+    } elsif (m/^-u(.*)$/) {
+	$uploadfilesdir = $1;
     } elsif (m/^-U([^\=:]+)$/) {
-        $remove{$1}= 1;
-    } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:]/) {
-	$substvars->set($1, $POSTMATCH);
+        $remove{$1} = 1;
+    } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:](.*)$/) {
+	$substvars->set($1, $2);
     } elsif (m/^-(h|-help)$/) {
 	usage();
 	exit(0);
@@ -214,7 +213,7 @@ if (not is_sourceonly) {
 	if (m/^(([-+.0-9a-z]+)_([^_]+)_([-\w]+)\.u?deb) (\S+) (\S+)$/) {
 	    defined($p2f{"$2 $4"}) &&
 		warning(_g("duplicate files list entry for package %s (line %d)"),
-			$2, $NR);
+			$2, $.);
 	    $f2p{$1}= $2;
 	    $pa2f{"$2 $4"}= $1;
 	    $p2f{$2} ||= [];
@@ -222,7 +221,7 @@ if (not is_sourceonly) {
 	    $p2ver{$2}= $3;
 	    defined($f2sec{$1}) &&
 		warning(_g("duplicate files list entry for file %s (line %d)"),
-			$1, $NR);
+			$1, $.);
 	    $f2sec{$1}= $5;
 	    $f2pri{$1}= $6;
 	    push(@archvalues,$4) unless !$4 || $archadded{$4}++;
@@ -236,12 +235,12 @@ if (not is_sourceonly) {
 	} elsif (m/^([-+.,_0-9a-zA-Z]+) (\S+) (\S+)$/) {
 	    defined($f2sec{$1}) &&
 		warning(_g("duplicate files list entry for file %s (line %d)"),
-			$1, $NR);
+			$1, $.);
 	    $f2sec{$1}= $2;
 	    $f2pri{$1}= $3;
 	    push(@fileslistfiles,$1);
 	} else {
-	    error(_g("badly formed line in files list file, line %d"), $NR);
+	    error(_g("badly formed line in files list file, line %d"), $.);
 	}
     }
     close(FL);

+ 0 - 1
scripts/dpkg-shlibdeps.pl

@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 
-use English;
 use POSIX qw(:errno_h :signal_h);
 use Cwd qw(realpath);
 use File::Basename qw(dirname);

+ 14 - 15
scripts/dpkg-source.pl

@@ -20,7 +20,6 @@ use Dpkg::Source::Compressor;
 use Dpkg::Source::Package;
 use Dpkg::Vendor qw(run_vendor_hook);
 
-use English;
 use File::Spec;
 
 textdomain("dpkg-dev");
@@ -62,27 +61,27 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
         setopmode('extract');
     } elsif (m/^--format=(.*)$/) {
         push @cmdline_formats, $1;
-    } elsif (m/^-Z/) {
-	my $compression = $POSTMATCH;
+    } elsif (m/^-Z(.*)$/) {
+	my $compression = $1;
 	$options{'compression'} = $compression;
 	$options{'comp_ext'} = $comp_ext{$compression};
 	usageerr(_g("%s is not a supported compression"), $compression)
 	    unless $comp_supported{$compression};
 	Dpkg::Source::Compressor->set_default_compression($compression);
-    } elsif (m/^-z/) {
-	my $comp_level = $POSTMATCH;
+    } elsif (m/^-z(.*)$/) {
+	my $comp_level = $1;
 	$options{'comp_level'} = $comp_level;
 	usageerr(_g("%s is not a compression level"), $comp_level)
 	    unless $comp_level =~ /^([1-9]|fast|best)$/;
 	Dpkg::Source::Compressor->set_default_compression_level($comp_level);
-    } elsif (m/^-c/) {
-        $controlfile = $POSTMATCH;
-    } elsif (m/^-l/) {
-        $changelogfile = $POSTMATCH;
+    } elsif (m/^-c(.*)$/) {
+        $controlfile = $1;
+    } elsif (m/^-l(.*)$/) {
+        $changelogfile = $1;
     } elsif (m/^-F([0-9a-z]+)$/) {
         $changelogformat = $1;
-    } elsif (m/^-D([^\=:]+)[=:]/) {
-        $override{$1} = $POSTMATCH;
+    } elsif (m/^-D([^\=:]+)[=:](.*)$/) {
+        $override{$1} = $2;
     } elsif (m/^-U([^\=:]+)$/) {
         $remove{$1} = 1;
     } elsif (m/^-i(.*)$/) {
@@ -101,10 +100,10 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
         $options{'no_check'} = 1;
     } elsif (m/^--require-valid-signature$/) {
         $options{'require_valid_signature'} = 1;
-    } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:]/) {
-        $substvars->set($1, $POSTMATCH);
-    } elsif (m/^-T/) {
-        $varlistfile = $POSTMATCH;
+    } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:](.*)$/) {
+        $substvars->set($1, $2);
+    } elsif (m/^-T(.*)$/) {
+        $varlistfile = $1;
     } elsif (m/^-(h|-help)$/) {
         usage();
         exit(0);