From 62245bccd9a487dfd6f652822af816afe482b43d Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" Date: Mon, 15 Aug 2005 17:58:19 +0000 Subject: [PATCH] =?UTF-8?q?Bug=20304660:=20PerformSubsts()=20should=20be?= =?UTF-8?q?=20in=20Util.pm=20instead=20of=20BugMail.pm=20-=20Patch=20by=20?= =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Buclin=20=20r=3Dmkanat?= =?UTF-8?q?=20a=3Dmyk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.0.0.236/trunk@177762 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/Bugzilla/Bug.pm | 2 +- mozilla/webtools/bugzilla/Bugzilla/BugMail.pm | 30 ++----------------- mozilla/webtools/bugzilla/Bugzilla/Util.pm | 26 ++++++++++++++++ mozilla/webtools/bugzilla/globals.pl | 1 - .../webtools/bugzilla/showdependencygraph.cgi | 3 +- mozilla/webtools/bugzilla/whineatnews.pl | 3 +- 6 files changed, 32 insertions(+), 33 deletions(-) diff --git a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm index 4dcb83e6c8d..f281dbda828 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm @@ -1079,7 +1079,7 @@ sub RemoveVotes { $substs{"count"} = $removedvotes . "\n " . $newvotestext; - my $msg = PerformSubsts(Param("voteremovedmail"), \%substs); + my $msg = perform_substs(Param("voteremovedmail"), \%substs); Bugzilla::BugMail::MessageToMTA($msg); } my $votes = $dbh->selectrow_array("SELECT SUM(vote_count) " . diff --git a/mozilla/webtools/bugzilla/Bugzilla/BugMail.pm b/mozilla/webtools/bugzilla/Bugzilla/BugMail.pm index dffc98a8543..59d4210a1f2 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/BugMail.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/BugMail.pm @@ -32,11 +32,6 @@ use strict; package Bugzilla::BugMail; -use base qw(Exporter); -@Bugzilla::BugMail::EXPORT = qw( - PerformSubsts -); - use Bugzilla::DB qw(:deprecated); use Bugzilla::User; use Bugzilla::Constants; @@ -603,7 +598,7 @@ sub sendMail { my $template = Param("newchangedmail"); - my $msg = PerformSubsts($template, \%substs); + my $msg = perform_substs($template, \%substs); MessageToMTA($msg); @@ -730,32 +725,11 @@ sub encode_message { return ($head, $body); } -# 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. -sub PerformSubsts { - my ($str, $substs) = (@_); - $str =~ s/%([a-z]*)%/(defined $substs->{$1} ? $substs->{$1} : Param($1))/eg; - return $str; -} - # Send the login name and password of the newly created account to the user. sub MailPassword { my ($login, $password) = (@_); my $template = Param("passwordmail"); - my $msg = PerformSubsts($template, + my $msg = perform_substs($template, {"mailaddress" => $login . Param('emailsuffix'), "login" => $login, "password" => $password}); diff --git a/mozilla/webtools/bugzilla/Bugzilla/Util.pm b/mozilla/webtools/bugzilla/Bugzilla/Util.pm index 694f6f1c401..f5084e02c6d 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Util.pm +++ b/mozilla/webtools/bugzilla/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, diff --git a/mozilla/webtools/bugzilla/globals.pl b/mozilla/webtools/bugzilla/globals.pl index ed4159335f7..17174540a3a 100644 --- a/mozilla/webtools/bugzilla/globals.pl +++ b/mozilla/webtools/bugzilla/globals.pl @@ -35,7 +35,6 @@ use Bugzilla::Constants; use Bugzilla::Util; # Bring ChmodDataFile in until this is all moved to the module use Bugzilla::Config qw(:DEFAULT ChmodDataFile $localconfig $datadir); -use Bugzilla::BugMail; use Bugzilla::User; use Bugzilla::Error; diff --git a/mozilla/webtools/bugzilla/showdependencygraph.cgi b/mozilla/webtools/bugzilla/showdependencygraph.cgi index 4339bb3e595..01ac1e2e32b 100755 --- a/mozilla/webtools/bugzilla/showdependencygraph.cgi +++ b/mozilla/webtools/bugzilla/showdependencygraph.cgi @@ -29,7 +29,6 @@ use File::Temp; use Bugzilla; use Bugzilla::Config qw(:DEFAULT $webdotdir); use Bugzilla::Util; -use Bugzilla::BugMail; use Bugzilla::Bug; require "globals.pl"; @@ -221,7 +220,7 @@ my $webdotbase = Param('webdotbase'); if ($webdotbase =~ /^https?:/) { # Remote dot server - my $url = PerformSubsts($webdotbase) . $filename; + my $url = perform_substs($webdotbase) . $filename; $vars->{'image_url'} = $url . ".gif"; $vars->{'map_url'} = $url . ".map"; } else { diff --git a/mozilla/webtools/bugzilla/whineatnews.pl b/mozilla/webtools/bugzilla/whineatnews.pl index ae2121303b1..50e06383eb3 100755 --- a/mozilla/webtools/bugzilla/whineatnews.pl +++ b/mozilla/webtools/bugzilla/whineatnews.pl @@ -33,6 +33,7 @@ use lib '.'; require "globals.pl"; use Bugzilla::BugMail; +use Bugzilla::Util; # Whining is disabled if whinedays is zero exit unless Param('whinedays') >= 1; @@ -71,7 +72,7 @@ foreach my $email (sort (keys %bugs)) { my %substs; $substs{'email'} = $email . $emailsuffix; $substs{'userid'} = $email; - my $msg = PerformSubsts($template, \%substs); + my $msg = perform_substs($template, \%substs); foreach my $i (@{$bugs{$email}}) { $msg .= " " . shift(@{$desc{$email}}) . "\n";