use Debbugs::Control qw(:archive :log);
use Debbugs::Log qw(:misc);
+use Mail::RFC822::Address;
+
$lib_path = $gLibPath;
require "$lib_path/errorlib";
$ENV{'PATH'} = $lib_path.':'.$ENV{'PATH'};
next;
}
if (not $indicated_user and defined $user) {
- &transcript("User is $user");
+ &transcript("User is $user\n");
$indicated_user = 1;
}
while (++$procline <= $#bodylines) {
$indicated_user = 1;
} elsif (&setbug) {
if (not $indicated_user and defined $user) {
- &transcript("User is $user");
+ &transcript("User is $user\n");
$indicated_user = 1;
}
&nochangebug;
}
}
} elsif (m{^found\s+\#?(-?\d+)
- (?:\s+(?:$config{package_name_re}\/)?
- ($config{package_version_re}))?$}ix) {
+ (?:\s+((?:$config{package_name_re}\/)?
+ $config{package_version_re}))?$}ix) {
$ok++;
$ref= $1;
$version= $2;
# than any version in which the bug is fixed or when
# a bug is found and there is no fixed version
if (defined $version) {
+ my ($version_only) = $version =~ m{([^/]+)$};
addfoundversions($data, $data->{package}, $version, 'binary');
my @fixed_order = sort {Debbugs::Versions::Dpkg::vercmp($a,$b);}
- @{$data->{fixed_versions}};
- if (not @fixed_order or (vercmp($fixed_order[-1],$version) >= 0)) {
+ map {s{.+/}{}; $_;} @{$data->{fixed_versions}};
+ if (not @fixed_order or (Debbugs::Versions::Dpkg::vercmp($version_only,$fixed_order[-1]) >= 0)) {
+ $action = "$gBug marked as found in version $version and reopened."
+ if length $data->{done};
$data->{done} = '';
}
} else {
} while (&getnextbug);
}
}
- } elsif (m/^notfound\s+\#?(-?\d+)\s+(\d.*)$/i) {
+ } elsif (m[^notfound\s+\#?(-?\d+)
+ (?:\s+(?:$config{package_name_re}\/)?
+ ($config{package_version_re}))$]ix) {
$ok++;
$ref= $1;
$version= $2;
if (&setbug) {
- $action= "$gBug marked as not found in version $version.";
+ $action= "$gBug no longer marked as found in version $version.";
if (length($data->{done})) {
$extramessage= "(By the way, this $gBug is currently marked as done.)\n";
}
if (&setbug) {
$action=
defined($version) ?
- "$gBug marked as not fixed in version $version." :
+ "$gBug no longer marked as fixed in version $version." :
"$gBug reopened.";
do {
&addmaintainers($data);
if ($ref =~ m/^-\d+$/ && defined $clonebugs{$ref}) {
$ref = $clonebugs{$ref};
}
- if (&getbug) {
+ if (not Mail::RFC822::Address::valid($newsubmitter)) {
+ transcript("$newsubmitter is not a valid e-mail address; not changing submitter\n");
+ $errors++;
+ }
+ elsif (&getbug) {
if (&checkpkglimit) {
&foundbug;
&addmaintainers($data);
sub getbug {
&dlen("getbug $ref");
$lowstate eq 'idle' || die "$state ?";
- if (($data = &lockreadbug($ref))) {
+ # Only use unmerged bugs here
+ if (($data = &lockreadbug($ref,'db-h'))) {
$sref= $ref;
$lowstate= "open";
&dlex("getbug => 1");