]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Fix for bug 95890: Correctly convert/record keyword changes in the bugs_activity...
authormyk%mozilla.org <>
Mon, 20 Aug 2001 01:26:21 +0000 (01:26 +0000)
committermyk%mozilla.org <>
Mon, 20 Aug 2001 01:26:21 +0000 (01:26 +0000)
regular expression meta-characters.  Myk's first ever Bugzilla checkin!
Patch by Dave Miller <justdave@syndicomm.com> and Myk Melez <myk@mozilla.org>.
r=myk@mozilla.org,justdave@syndicomm.com

checksetup.pl
globals.pl

index 4eeec8ef15f92bcd7e5f190da8e448d5904c9443..4c3ab81d3cec8b4ab9427a135d990b1ce9659b1a 100755 (executable)
@@ -2405,25 +2405,27 @@ if (GetFieldDef('bugs_activity', 'oldvalue')) {
                             oldvalue, newvalue FROM bugs_activity");
     $sth->execute;
     while (my ($bug_id, $who, $bug_when, $fieldid, $oldvalue, $newvalue) = $sth->fetchrow_array()) {
-        # print a "." every 500 records so the user knows we didn't die
-        print "." if !($i++ % 500); 
+        # print the iteration count every 500 records so the user knows we didn't die
+        print "$i..." if !($i++ % 500); 
         # Make sure (old|new)value isn't null (to suppress warnings)
         $oldvalue ||= "";
         $newvalue ||= "";
         my ($added, $removed) = "";
-        if (grep /^$fieldid$/, @multi) {
+        if (grep ($_ eq $fieldid, @multi)) {
+            $oldvalue =~ s/[\s,]+/ /g;
+            $newvalue =~ s/[\s,]+/ /g;
+            my @old = split(" ", $oldvalue);
+            my @new = split(" ", $newvalue);
             my (@add, @remove) = ();
-            my @old = split(/[ ,]/, $oldvalue);
-            my @new = split(/[ ,]/, $newvalue);
             # Find values that were "added"
             foreach my $value(@new) {
-                if (! grep /^$value$/, @old) {
+                if (! grep ($_ eq $value, @old)) {
                     push (@add, $value);
                 }
             }
             # Find values that were removed
             foreach my $value(@old) {
-                if (! grep /^$value$/, @new) {
+                if (! grep ($_ eq $value, @new)) {
                     push (@remove, $value);
                 }
             }
index 3d14c915380f2d050efb01f9024f185228ab8095..a3ea97c401547844d3da7d602458a1a051d7c2ab 100644 (file)
@@ -1295,24 +1295,22 @@ sub Param ($) {
 sub DiffStrings {
     my ($oldstr, $newstr) = @_;
 
+    # Split the old and new strings into arrays containing their values.
+    $oldstr =~ s/[\s,]+/ /g;
+    $newstr =~ s/[\s,]+/ /g;
+    my @old = split(" ", $oldstr);
+    my @new = split(" ", $newstr);
+
     my (@remove, @add) = ();
-    my @old = split(/[ ,]/, $oldstr);
-    my @new = split(/[ ,]/, $newstr);
 
     # Find values that were removed
-    foreach my $value(@old) {
-        next if $value =~ /^\s*$/;
-        if (! grep /^$value$/, @new) {
-            push (@remove, $value);
-        }
+    foreach my $value (@old) {
+        push (@remove, $value) if !grep($_ eq $value, @new);
     }
 
     # Find values that were added
-    foreach my $value(@new) {
-        next if $value =~ /^\s*$/;
-        if (! grep /^$value$/, @old) {
-            push (@add, $value);
-        }
+    foreach my $value (@new) {
+        push (@add, $value) if !grep($_ eq $value, @old);
     }
 
     my $removed = join (", ", @remove);