summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Util.pm
diff options
context:
space:
mode:
authorSimon Green <sgreen@redhat.com>2013-07-09 04:48:49 +0200
committerSimon Green <sgreen@redhat.com>2013-07-09 04:48:49 +0200
commit8a2ac0569e86483b6825d8b71bca4adbac345a1c (patch)
tree5c601a279d8bdceaa915060105fc40a16b26373d /Bugzilla/Util.pm
parent9c8b03aa9c8f01da284d39e2726ce609d25866fc (diff)
downloadbugzilla-8a2ac0569e86483b6825d8b71bca4adbac345a1c.tar.gz
bugzilla-8a2ac0569e86483b6825d8b71bca4adbac345a1c.tar.xz
Bug 885646: Bugzilla::BugMail::_get_diff should rejoin split activity entries
r=glob, a=justdave
Diffstat (limited to 'Bugzilla/Util.pm')
-rw-r--r--Bugzilla/Util.pm38
1 files changed, 37 insertions, 1 deletions
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index cee12ee21..58d6ab365 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -22,7 +22,8 @@ use parent qw(Exporter);
is_7bit_clean bz_crypt generate_random_password
validate_email_syntax check_email_syntax clean_text
get_text template_var disable_utf8
- detect_encoding email_filter);
+ detect_encoding email_filter
+ join_activity_entries);
use Bugzilla::Constants;
use Bugzilla::RNG qw(irand);
@@ -464,6 +465,35 @@ sub find_wrap_point {
return $wrappoint;
}
+sub join_activity_entries {
+ my ($field, $current_change, $new_change) = @_;
+ # We need to insert characters as these were removed by old
+ # LogActivityEntry code.
+
+ return $new_change if $current_change eq '';
+
+ # Buglists and see_also need the comma restored
+ if ($field eq 'dependson' || $field eq 'blocked' || $field eq 'see_also') {
+ if (substr($new_change, 0, 1) eq ',' || substr($new_change, 0, 1) eq ' ') {
+ return $current_change . $new_change;
+ } else {
+ return $current_change . ', ' . $new_change;
+ }
+ }
+
+ # Assume bug_file_loc contain a single url, don't insert a delimiter
+ if ($field eq 'bug_file_loc') {
+ return $current_change . $new_change;
+ }
+
+ # All other fields get a space
+ if (substr($new_change, 0, 1) eq ' ') {
+ return $current_change . $new_change;
+ } else {
+ return $current_change . ' ' . $new_change;
+ }
+}
+
sub wrap_hard {
my ($string, $columns) = @_;
local $Text::Wrap::columns = $columns;
@@ -1012,6 +1042,12 @@ 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.
+=item C<join_activity_entries($field, $current_change, $new_change)>
+
+Joins two strings together so they appear as one. The field name is specified
+as the method of joining the two strings depends on this. Returns the
+combined string.
+
=item C<is_7bit_clean($str)>
Returns true is the string contains only 7-bit characters (ASCII 32 through 126,