summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Util.pm31
1 files changed, 29 insertions, 2 deletions
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index 8fcb900df..2c45e077f 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -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