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);
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) = @_;
=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
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.
# 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
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);