From 044848e67b4134b9429f880774c9c6cf577226cc Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Tue, 16 Aug 2005 00:58:10 +0000 Subject: Bug 304660: PerformSubsts() should be in Util.pm instead of BugMail.pm - Patch by Frédéric Buclin r=mkanat a=myk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Util.pm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'Bugzilla/Util.pm') diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 694f6f1c4..f5084e02c 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -37,6 +37,7 @@ use base qw(Exporter); lsearch max min diff_arrays diff_strings trim wrap_comment find_wrap_point + perform_substs format_time format_time_decimal validate_date file_mod_time is_7bit_clean bz_crypt validate_email_syntax); @@ -264,6 +265,12 @@ sub find_wrap_point { return $wrappoint; } +sub perform_substs { + my ($str, $substs) = (@_); + $str =~ s/%([a-z]*)%/(defined $substs->{$1} ? $substs->{$1} : Param($1))/eg; + return $str; +} + sub format_time { my ($date, $format) = @_; @@ -418,6 +425,7 @@ Bugzilla::Util - Generic utility functions for bugzilla $val = trim(" abc "); ($removed, $added) = diff_strings($old, $new); $wrapped = wrap_comment($comment); + $msg = perform_substs($str, $substs); # Functions for formatting time format_time($time); @@ -600,6 +608,24 @@ 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 + +Performs substitutions for sending out email with variables in it, +or for inserting a parameter into some other string. + +Takes a string and a reference to a hash containing substitution +variables and their values. + +If the hash is not specified, or if we need to substitute something +that's not in the hash, then we will use parameters to do the +substitution instead. + +Substitutions are always enclosed with '%' symbols. So they look like: +%some_variable_name%. If "some_variable_name" is a key in the hash, then +its value will be placed into the string. If it's not a key in the hash, +then the value of the parameter called "some_variable_name" will be placed +into the string. + =item C Returns true is the string contains only 7-bit characters (ASCII 32 through 126, -- cgit v1.2.3-24-g4f1b