]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 272623: FindWrapPoint is misplaced in process_bug.cgi - Patch by Frédéric Buclin...
authorlpsolit%gmail.com <>
Wed, 20 Apr 2005 00:55:09 +0000 (00:55 +0000)
committerlpsolit%gmail.com <>
Wed, 20 Apr 2005 00:55:09 +0000 (00:55 +0000)
Bugzilla/Util.pm
CGI.pl
process_bug.cgi

index 8fcb900df63f9cdbf1e9f1e30bdcfbb69f4b5518..2c45e077f4d0a412d54ebc93686bf9e0b0b2972a 100644 (file)
@@ -33,8 +33,8 @@ use base qw(Exporter);
                              html_quote url_quote value_quote xml_quote
                              css_class_quote
                              lsearch max min
-                             diff_arrays
-                             trim diff_strings wrap_comment
+                             diff_arrays diff_strings
+                             trim wrap_comment find_wrap_point
                              format_time format_time_decimal
                              file_mod_time);
 
@@ -219,6 +219,25 @@ sub wrap_comment ($) {
     return $wrappedcomment;
 }
 
+sub find_wrap_point ($$) {
+    my ($string, $maxpos) = @_;
+    if (!$string) { return 0 }
+    if (length($string) < $maxpos) { return length($string) }
+    my $wrappoint = rindex($string, ",", $maxpos); # look for comma
+    if ($wrappoint < 0) {  # can't find comma
+        $wrappoint = rindex($string, " ", $maxpos); # look for space
+        if ($wrappoint < 0) {  # can't find space
+            $wrappoint = rindex($string, "-", $maxpos); # look for hyphen
+            if ($wrappoint < 0) {  # can't find hyphen
+                $wrappoint = $maxpos;  # just truncate it
+            } else {
+                $wrappoint++; # leave hyphen on the left side
+            }
+        }
+    }
+    return $wrappoint;
+}
+
 sub format_time {
     my ($time) = @_;
 
@@ -480,6 +499,14 @@ database.
 
 =back
 
+=item C<find_wrap_point($string, $maxpos)>
+
+Search for a comma, a whitespace or a hyphen to split $string, within the first
+$maxpos characters. If none of them is found, just split $string at $maxpos.
+The search starts at $maxpos and goes back to the beginning of the string.
+
+=back
+
 =head2 Formatting Time
 
 =over 4
diff --git a/CGI.pl b/CGI.pl
index db8b8e27f8c78b6f60233884a0f5a4efd5b57633..ec0d8909cb7a88ca8fc6d248ce0735baaf480586 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -48,6 +48,10 @@ use Bugzilla::BugMail;
 use Bugzilla::Bug;
 use Bugzilla::User;
 
+# Used in LogActivityEntry(). Gives the max length of lines in the
+# activity table.
+use constant MAX_LINE_LENGTH => 254;
+
 # Shut up misguided -w warnings about "used only once".  For some reason,
 # "use vars" chokes on me when I try it here.
 
@@ -254,16 +258,16 @@ sub LogActivityEntry {
     # into multiple entries if it's too long.
     while ($removed || $added) {
         my ($removestr, $addstr) = ($removed, $added);
-        if (length($removestr) > 254) {
-            my $commaposition = FindWrapPoint($removed, 254);
+        if (length($removestr) > MAX_LINE_LENGTH) {
+            my $commaposition = find_wrap_point($removed, MAX_LINE_LENGTH);
             $removestr = substr($removed,0,$commaposition);
             $removed = substr($removed,$commaposition);
             $removed =~ s/^[,\s]+//; # remove any comma or space
         } else {
             $removed = ""; # no more entries
         }
-        if (length($addstr) > 254) {
-            my $commaposition = FindWrapPoint($added, 254);
+        if (length($addstr) > MAX_LINE_LENGTH) {
+            my $commaposition = find_wrap_point($added, MAX_LINE_LENGTH);
             $addstr = substr($added,0,$commaposition);
             $added = substr($added,$commaposition);
             $added =~ s/^[,\s]+//; # remove any comma or space
index 6f83031546e2797af15594373b58a4e6447d1bc0..b62271e8bd1e89d281e1722858870441d3b42cb0 100755 (executable)
@@ -1151,25 +1151,6 @@ sub SnapShotDeps {
 my $timestamp;
 my $bug_changed;
 
-sub FindWrapPoint {
-    my ($string, $startpos) = @_;
-    if (!$string) { return 0 }
-    if (length($string) < $startpos) { return length($string) }
-    my $wrappoint = rindex($string, ",", $startpos); # look for comma
-    if ($wrappoint < 0) {  # can't find comma
-        $wrappoint = rindex($string, " ", $startpos); # look for space
-        if ($wrappoint < 0) {  # can't find space
-            $wrappoint = rindex($string, "-", $startpos); # look for hyphen
-            if ($wrappoint < 0) {  # can't find hyphen
-                $wrappoint = $startpos;  # just truncate it
-            } else {
-                $wrappoint++; # leave hyphen on the left side
-            }
-        }
-    }
-    return $wrappoint;
-}
-
 sub LogDependencyActivity {
     my ($i, $oldstr, $target, $me, $timestamp) = (@_);
     my $sql_timestamp = SqlQuote($timestamp);