--- gnatsweb.pl~ Mon Jul 30 17:40:46 2001 +++ gnatsweb.pl Mon Jul 30 17:41:10 2001 @@ -1593,16 +1593,18 @@ # 'Reason Changed' have the reason specified: foreach my $fieldname (keys 0.000000ields) { - if ( ($fields{$fieldname} ne $oldfields{$fieldname}) && (fieldinfo($fieldname, 'flags') & $REASONCHANGE) ) + next if (!isvalidfield ( $fieldname)); + if ( (!defined ($oldfields{$fieldname}) || ($fields{$fieldname} ne $oldfields{$fieldname})) && + ((fieldinfo($fieldname, 'flags') & $REASONCHANGE) != 0) ) { - if($fields{$fieldname."-Changed-Why"} =~ /^\s*$/) + if ($fields{$fieldname."-Changed-Why"} =~ /^\s*$/) { error_page("Field '$fieldname' must have a reason for change", "Please press the 'Back' button of you browser, correct the problem and resubmit."); last LOCKED; } - } - if ($fields{$fieldname} eq $oldfields{$fieldname} && exists $fields{$fieldname."-Changed-Why"} ) + } + if (defined($oldfields{$fieldname}) && ($fields{$fieldname} eq $oldfields{$fieldname}) && exists $fields{$fieldname."-Changed-Why"} ) { delete $fields{$fieldname."-Changed-Why"}; } @@ -3288,6 +3290,7 @@ # Lines which begin with a '.' need to be escaped by another '.' # if we're feeding it to gnatsd. $tmp = $fields{$_}; + $tmp = '' if !defined $tmp; $tmp =~ s/^[.]/../gm if ($purpose ne 'test'); $text .= sprintf(">$_:\n", $tmp);