From a4528b84c02ebb1d7b9bff1f068283e28c5186de Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Mon, 21 Nov 2011 08:37:26 +0100 Subject: Bug 703928: Bugzilla::Util should depend on Bugzilla::Error, not the opposite r=dkl a=LpSolit --- Bugzilla/Error.pm | 8 +++++--- Bugzilla/Util.pm | 26 ++++++++++---------------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/Bugzilla/Error.pm b/Bugzilla/Error.pm index 395cc0dc9..b88e9a265 100644 --- a/Bugzilla/Error.pm +++ b/Bugzilla/Error.pm @@ -30,7 +30,7 @@ use base qw(Exporter); use Bugzilla::Constants; use Bugzilla::WebService::Constants; -use Bugzilla::Util; +use Bugzilla::Hook; use Carp; use Data::Dumper; @@ -62,12 +62,13 @@ sub _throw_error { my $datadir = bz_locations()->{'datadir'}; # If a writable $datadir/errorlog exists, log error details there. if (-w "$datadir/errorlog") { + require Bugzilla::Util; require Data::Dumper; my $mesg = ""; for (1..75) { $mesg .= "-"; }; $mesg .= "\n[$$] " . time2str("%D %H:%M:%S ", time()); $mesg .= "$name $error "; - $mesg .= remote_ip(); + $mesg .= Bugzilla::Util::remote_ip(); $mesg .= Bugzilla->user->login; $mesg .= (' actually ' . Bugzilla->sudoer->login) if Bugzilla->sudoer; $mesg .= "\n"; @@ -115,7 +116,6 @@ sub _throw_error { { # Clone the hash so we aren't modifying the constant. my %error_map = %{ WS_ERROR_CODE() }; - require Bugzilla::Hook; Bugzilla::Hook::process('webservice_error_codes', { error_map => \%error_map }); my $code = $error_map{$error}; @@ -186,6 +186,8 @@ sub ThrowTemplateError { # Try a template first; but if this one fails too, fall back # on plain old print statements. if (!$template->process("global/code-error.html.tmpl", $vars)) { + require Bugzilla::Util; + import Bugzilla::Util qw(html_quote); my $maintainer = Bugzilla->params->{'maintainer'}; my $error = html_quote($vars->{'template_error_msg'}); my $error2 = html_quote($template->error()); diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index a3ec2aafe..c0bb5630c 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -47,6 +47,7 @@ use base qw(Exporter); use Bugzilla::Constants; use Bugzilla::RNG qw(irand); +use Bugzilla::Error; use Date::Parse; use Date::Format; @@ -639,10 +640,9 @@ sub get_text { $vars ||= {}; $vars->{'message'} = $name; my $message; - if (!$template->process('global/message.txt.tmpl', $vars, \$message)) { - require Bugzilla::Error; - Bugzilla::Error::ThrowTemplateError($template->error()); - } + $template->process('global/message.txt.tmpl', $vars, \$message) + || ThrowTemplateError($template->error()); + # Remove the indenting that exists in messages.html.tmpl. $message =~ s/^ //gm; return $message; @@ -657,13 +657,10 @@ sub template_var { my %vars; # Note: If we suddenly start needing a lot of template_var variables, # they should move into their own template, not field-descs. - my $result = $template->process('global/field-descs.none.tmpl', - { vars => \%vars, in_template_var => 1 }); - # Bugzilla::Error can't be "use"d in Bugzilla::Util. - if (!$result) { - require Bugzilla::Error; - Bugzilla::Error::ThrowTemplateError($template->error); - } + $template->process('global/field-descs.none.tmpl', + { vars => \%vars, in_template_var => 1 }) + || ThrowTemplateError($template->error()); + $cache->{$lang} = \%vars; return $vars{$name}; } @@ -688,11 +685,8 @@ use constant UTF8_ACCIDENTAL => qw(shiftjis big5-eten euc-kr euc-jp); sub detect_encoding { my $data = shift; - if (!Bugzilla->feature('detect_charset')) { - require Bugzilla::Error; - Bugzilla::Error::ThrowCodeError('feature_disabled', - { feature => 'detect_charset' }); - } + Bugzilla->feature('detect_charset') + || ThrowCodeError('feature_disabled', { feature => 'detect_charset' }); require Encode::Detect::Detector; import Encode::Detect::Detector 'detect'; -- cgit v1.2.3-24-g4f1b