[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ddts-script v 0.2



Le jeudi 29 novembre 2001, Nicolas Bertolissio écrit :
> La rustine est jointe
Quand je n'oublie pas...

Nicolas
-- 
--- ddts-script_0.1.9.txt	Wed Nov 28 14:41:03 2001
+++ ddts-script_0.2.txt	Thu Nov 29 09:15:01 2001
@@ -172,6 +172,8 @@
 
 =item I<$mail_addr>, your email address
 
+=item I<$mail_from>, the mail address you want the ddts to answer to
+
 =item I<$mail_self>, set to `B<yes>' if your want to be sent a copy of outgoing mail
 
 =item I<$mail_enc>, mail encoding for mime
@@ -209,7 +211,7 @@
 
 =cut
 
-my $version = "0.1.9";
+my $version = "0.2";
 
 # Test if configuration as been made
 foreach ($tr_dir, $bug_dir, $rev_dir) {
@@ -519,6 +521,7 @@
 	my $bug_number;
 	my $langage;
 	my $description;
+	my $old_description;
 	my $db_translation;
 	my $translation;
 
@@ -581,6 +584,18 @@
 					 .join("\n", map($_ = "        $_", split("\n", $db_translation)))."\n";
 		}
 
+		if (defined && (/^# old description:/)) {
+			$_ = <UU>;
+			/^# Description: /;
+			$old_description  = $';
+			while (<UU>) {
+				last unless /^#  /;
+				$old_description .= " $'";
+			}
+
+			$debug>4 && print "    old description\n";
+			$debug>4 && print join("\n", map($_ = "        $_", split("\n", $old_description)))."\n";
+		}
 		if (defined && /^Description-(..(_..)?): /) {
 			$langage      = $1;
 			$translation  = $';
@@ -621,7 +636,7 @@
 			} elsif ($uu_file eq "$temp_dir/ddts-reviewed-$$") {
 				&parse_reviewed($package);
 			} else {
-				&parse_bug($package, $langage, $description, $translation, $db_translation, $bug_number, $reviewer_addr, $message_id);
+				&parse_bug($package, $langage, $description, $old_description, $translation, $db_translation, $bug_number, $reviewer_addr, $message_id);
 			}
 
 			# Clear variables
@@ -685,8 +700,8 @@
 	$debug>3 && print "    langage:      $langage\n";
 	$debug>3 && print "    message id:   $message_id\n";
 
-	&move_file  ("$rev_dir/$package.$ok_e", "$rev_dir/$package.$sent_e");
-	&move_file  ("$rev_dir/$package.$rev_e", "$rev_dir/$package.$sent_e");
+	&move_file  ("$rev_dir/$package.$ok_e",   "$rev_dir/$package.$sent_e");
+	&move_file  ("$rev_dir/$package.$rev_e",  "$rev_dir/$package.$sent_e");
 	&move_file  ("$rev_dir/$package.$sent_e", "$rev_dir/$package.$old_e");
 
 	my $todo = "# Package: $package\n"
@@ -713,8 +728,17 @@
 			} else {
 				my $reviewed = &get_translation("$rev_dir/$package.$old_e");
 				$todo = &get_header("$rev_dir/$package")
-		  		       ."Description: $description"
-		  		       ."Description-$langage\: ".&superdiff($original, $reviewed);
+		  		       ."Description: $description";
+				my @diff = split ("\n", &superdiff($original, $reviewed));
+				if ($diff[0] =~ /^$comment-/) {
+					$diff[0] =~ s/^$comment-//;
+					$diff[1] =~ s/^$comment\+//;
+					$todo = "$comment-Description-$langage\: ".$diff[0]."\n"
+					       ."$comment+Description-$langage\: ".$diff[1]."\n";
+					shift @diff;
+					shift @diff;
+				}
+		  		$todo = join ("\n", @diff)."\n";
 			}
 		}
 	}
@@ -723,14 +747,15 @@
 
 # Parse bug report
 sub parse_bug {
-	my $package     = shift;
-	my $langage     = shift;
-	my $description = shift;
-	my $review      = shift;
-	my $translation	= shift;
-	my $bug_number	= shift;
-	my $reviewer	= shift;
-	my $message_id  = shift;
+	my $package	    = shift;
+	my $langage	    = shift;
+	my $description	    = shift;
+	my $old_description = shift;
+	my $review	    = shift;
+	my $translation	    = shift;
+	my $bug_number	    = shift;
+	my $reviewer	    = shift;
+	my $message_id	    = shift;
 
 	$debug>2 && print "parse_bug\n";
 	$debug>3 && print "    package:      $package\n";
@@ -807,6 +832,19 @@
 	$debug==2 && print "saving:       $package\n";
 	$debug>3  && print "    saving:       $package\n";
 
+
+	# English description has changed
+	if (defined ($old_description)) {
+		# Choose original description
+		   $old_description = &get_description("$tr_dir/$package.$sent_e")        if (-e "$tr_dir/$package.$sent_e");
+		   $old_description = &get_description("$bug_dir/$package.$bug_e.$old_e") if ($patch);
+
+		@diff = split("\n", &superdiff($old_description, $description));
+		@diff = map  {  /^$comment\+/?$':$_ } @diff;
+		@diff = map  {  /^$comment-/?"# -$'":$_ } @diff;
+		$description=join("\n", @diff)."\n";
+	}
+
 	# Re-format review for superdiff
 	my @review = split("\n", $review);
 	   @review = map  { /^## -#/?"$comment--$'":$_ }     @review;
@@ -851,8 +889,13 @@
 	print PKG $header
 		 ."# ddts id:  $message_id\n"
 		 ."# bug nb:   $bug_number $l\n"
-		 ."# reviewer: $reviewer\n"
-		 ."Description: $description";
+		 ."# reviewer: $reviewer\n";
+	my @description = split("\n", $description);
+	if ($description[0] =~ /# -/) {
+		print PKG "# -Description: $'\n";
+		shift @description;
+	}
+	print PKG "Description: $description";
 
 	# Gather differences
 	for ($i = 0; $i<@diff; $i++) {

Reply to: