return $self->{'actual_time'};
}
-sub any_flags_requesteeble () {
+sub any_flags_requesteeble {
my ($self) = @_;
return $self->{'any_flags_requesteeble'}
if exists $self->{'any_flags_requesteeble'};
return $self->{'any_flags_requesteeble'};
}
-sub attachments () {
+sub attachments {
my ($self) = @_;
return $self->{'attachments'} if exists $self->{'attachments'};
return [] if $self->{'error'};
return $self->{'attachments'};
}
-sub assigned_to () {
+sub assigned_to {
my ($self) = @_;
return $self->{'assigned_to'} if exists $self->{'assigned_to'};
$self->{'assigned_to_id'} = 0 if $self->{'error'};
return $self->{'assigned_to'};
}
-sub blocked () {
+sub blocked {
my ($self) = @_;
return $self->{'blocked'} if exists $self->{'blocked'};
return [] if $self->{'error'};
# Even bugs in an error state always have a bug_id.
sub bug_id { $_[0]->{'bug_id'}; }
-sub cc () {
+sub cc {
my ($self) = @_;
return $self->{'cc'} if exists $self->{'cc'};
return [] if $self->{'error'};
return $self->{'cc'};
}
-sub dependson () {
+sub dependson {
my ($self) = @_;
return $self->{'dependson'} if exists $self->{'dependson'};
return [] if $self->{'error'};
return $self->{'dependson'};
}
-sub flag_types () {
+sub flag_types {
my ($self) = @_;
return $self->{'flag_types'} if exists $self->{'flag_types'};
return [] if $self->{'error'};
return $self->{'flag_types'};
}
-sub keywords () {
+sub keywords {
my ($self) = @_;
return $self->{'keywords'} if exists $self->{'keywords'};
return () if $self->{'error'};
return $self->{'longdescs'};
}
-sub milestoneurl () {
+sub milestoneurl {
my ($self) = @_;
return $self->{'milestoneurl'} if exists $self->{'milestoneurl'};
return '' if $self->{'error'};
return $self->{'milestoneurl'};
}
-sub qa_contact () {
+sub qa_contact {
my ($self) = @_;
return $self->{'qa_contact'} if exists $self->{'qa_contact'};
return undef if $self->{'error'};
return $self->{'qa_contact'};
}
-sub reporter () {
+sub reporter {
my ($self) = @_;
return $self->{'reporter'} if exists $self->{'reporter'};
$self->{'reporter_id'} = 0 if $self->{'error'};
}
-sub show_attachment_flags () {
+sub show_attachment_flags {
my ($self) = @_;
return $self->{'show_attachment_flags'}
if exists $self->{'show_attachment_flags'};
# the alias.
# Queries the database for the bug with a given alias, and returns
# the ID of the bug if it exists or the undefined value if it doesn't.
-sub bug_alias_to_id ($) {
+sub bug_alias_to_id {
my ($alias) = @_;
return undef unless Param("usebugaliases");
my $dbh = Bugzilla->dbh;
# Subroutines
#####################################################################
-sub AppendComment ($$$;$$$) {
+sub AppendComment {
my ($bugid, $whoid, $comment, $isprivate, $timestamp, $work_time) = @_;
$work_time ||= 0;
my $dbh = Bugzilla->dbh;
return @dependencies;
}
-sub ValidateComment ($) {
+sub ValidateComment {
my ($comment) = @_;
if (defined($comment) && length($comment) > MAX_COMMENT_LENGTH) {
}
# Validate and return a hash of dependencies
-sub ValidateDependencies($$$) {
+sub ValidateDependencies {
my $fields = {};
$fields->{'dependson'} = shift;
$fields->{'blocked'} = shift;
# All the names are email addresses, not userids
# values are scalars, except for cc, which is a list
# This hash usually comes from the "mailrecipients" var in a template call.
-sub Send($;$) {
+sub Send {
my ($id, $forced) = (@_);
# This only works in a sub. Probably something to do with the
return ProcessOneBug($id, $forced);
}
-sub ProcessOneBug($$) {
+sub ProcessOneBug {
my ($id, $forced) = (@_);
my @headerlist;
return {'sent' => \@sent, 'excluded' => \@excluded};
}
-sub sendMail($$$$$$$$$$$$) {
+sub sendMail {
my ($user, $hlRef, $relRef, $valueRef, $dmhRef, $fdRef,
$diffRef, $newcomments, $anyprivate, $start,
$id) = @_;
return 1;
}
-sub MessageToMTA ($) {
+sub MessageToMTA {
my ($msg) = (@_);
return if (Param('mail_delivery_method') eq "none");
$mailer->close;
}
-sub encode_qp_words($) {
+sub encode_qp_words {
my ($line) = (@_);
my @encoded;
foreach my $word (split / /, $line) {
return join(' ', @encoded);
}
-sub encode_message($$) {
+sub encode_message {
my ($header, $body) = @_;
# read header into MIME::Entity
# 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 ($;$) {
+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 ($$) {
+sub MailPassword {
my ($login, $password) = (@_);
my $template = Param("passwordmail");
my $msg = PerformSubsts($template,
#### Subroutines ####
###############################
-sub get_all_classifications () {
+sub get_all_classifications {
my $dbh = Bugzilla->dbh;
my $ids = $dbh->selectcol_arrayref(q{
return @classifications;
}
-sub check_classification ($) {
+sub check_classification {
my ($class_name) = @_;
unless ($class_name) {
#### Subroutines ####
###############################
-sub get_components_by_product ($) {
+sub get_components_by_product {
my ($product_id) = @_;
my $dbh = Bugzilla->dbh;
return $row[0];
}
-sub PushGlobalSQLState() {
+sub PushGlobalSQLState {
push @SQLStateStack, $_current_sth;
push @SQLStateStack, $_fetchahead;
}
-sub PopGlobalSQLState() {
+sub PopGlobalSQLState {
die ("PopGlobalSQLState: stack underflow") if ( scalar(@SQLStateStack) < 1 );
$_fetchahead = pop @SQLStateStack;
$_current_sth = pop @SQLStateStack;
Param("shadowdbsock"), $db_user, $db_pass);
}
-sub connect_main (;$) {
+sub connect_main {
my ($no_db_name) = @_;
my $connect_to_db = $db_name;
$connect_to_db = "" if $no_db_name;
use Bugzilla::Error;
-sub check_form_field ($$;$) {
+sub check_form_field {
my ($cgi, $fieldname, $legalsRef) = @_;
my $dbh = Bugzilla->dbh;
}
}
-sub check_form_field_defined ($$) {
+sub check_form_field_defined {
my ($cgi, $fieldname) = @_;
if (!defined $cgi->param($fieldname)) {
##### Module Subroutines ###
################################
-sub ValidateGroupName ($$) {
+sub ValidateGroupName {
my ($name, @users) = (@_);
my $dbh = Bugzilla->dbh;
my $query = "SELECT id FROM groups " .
return $ret;
}
-sub get_group_controls_by_product ($) {
+sub get_group_controls_by_product {
my ($product_id) = @_;
my $dbh = Bugzilla->dbh;
##### Subroutines #####
################################
-sub get_milestones_by_product ($) {
+sub get_milestones_by_product {
my ($product_id) = @_;
my $dbh = Bugzilla->dbh;
return @milestones;
}
-sub check_milestone ($$) {
+sub check_milestone {
my ($product, $milestone_name) = @_;
unless ($milestone_name) {
return $milestone;
}
-sub check_sort_key ($$) {
+sub check_sort_key {
my ($milestone_name, $sortkey) = @_;
# Keep a copy in case detaint_signed() clears the sortkey
my $stored_sortkey = $sortkey;
#### Subroutines ######
###############################
-sub get_products_by_classification ($) {
+sub get_products_by_classification {
my ($class_id) = @_;
my $dbh = Bugzilla->dbh;
$class_id ||= DEFAULT_CLASSIFICATION_ID;
return @products;
}
-sub get_all_products () {
+sub get_all_products {
my $dbh = Bugzilla->dbh;
my $ids = $dbh->selectcol_arrayref(q{
return @products;
}
-sub check_product ($) {
+sub check_product {
my ($product_name) = @_;
unless ($product_name) {
# Returns the path to the templates based on the Accept-Language
# settings of the user and of the available languages
# If no Accept-Language is present it uses the defined default
-sub getTemplateIncludePath () {
+sub getTemplateIncludePath {
# Return cached value if available
# XXXX - mod_perl!
return $token;
}
-sub GetTokenData($) {
+sub GetTokenData {
# Returns the userid, issuedate and eventdata for the specified token
my ($token) = @_;
WHERE token = ?", undef, $token);
}
-sub DeleteToken($) {
+sub DeleteToken {
# Deletes specified token
my ($token) = @_;
# Internal Functions
################################################################################
-sub _create_token($$$) {
+sub _create_token {
# Generates a unique token and inserts it into the database
# Returns the token and the token timestamp
my ($userid, $tokentype, $eventdata) = @_;
return $self->{'userlist'};
}
-sub insert_new_user ($$;$$) {
+sub insert_new_user {
my ($username, $realname, $password, $disabledtext) = (@_);
my $dbh = Bugzilla->dbh;
return $password;
}
-sub is_available_username ($;$) {
+sub is_available_username {
my ($username, $old_username) = @_;
if(login_to_id($username) != 0) {
return 1;
}
-sub login_to_id ($) {
+sub login_to_id {
my ($login) = (@_);
my $dbh = Bugzilla->dbh;
# $login will only be used by the following SELECT statement, so it's safe.
}
}
-sub UserInGroup ($) {
+sub UserInGroup {
return defined Bugzilla->user->groups->{$_[0]} ? 1 : 0;
}
return $todecode;
}
-sub i_am_cgi () {
+sub i_am_cgi {
# I use SERVER_SOFTWARE because it's required to be
# defined for all requests in the CGI spec.
return exists $ENV{'SERVER_SOFTWARE'} ? 1 : 0;
return ($removed, $added);
}
-sub wrap_comment ($) {
+sub wrap_comment {
my ($comment) = @_;
my $wrappedcomment = "";
return $wrappedcomment;
}
-sub find_wrap_point ($$) {
+sub find_wrap_point {
my ($string, $maxpos) = @_;
if (!$string) { return 0 }
if (length($string) < $maxpos) { return length($string) }
return $wrappoint;
}
-sub format_time ($;$) {
+sub format_time {
my ($date, $format) = @_;
# If $format is undefined, try to guess the correct date format.
return $newtime;
}
-sub file_mod_time ($) {
+sub file_mod_time {
my ($filename) = (@_);
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
return $mtime;
}
-sub bz_crypt ($) {
+sub bz_crypt {
my ($password) = @_;
# The list of characters that can appear in a salt. Salts and hashes
##### Subroutines ###
###############################
-sub get_versions_by_product ($) {
+sub get_versions_by_product {
my ($product_id) = @_;
my $dbh = Bugzilla->dbh;
return @versions;
}
-sub check_version ($$) {
+sub check_version {
my ($product, $version_name) = @_;
$version_name || ThrowUserError('version_not_specified');
#
# Returns: A boolean true value if the query existed in the database
# before, and we updated it. A boolean false value otherwise.
-sub InsertNamedQuery ($$$;$) {
+sub InsertNamedQuery {
my ($userid, $query_name, $query, $link_in_footer) = @_;
$link_in_footer ||= 0;
$query_name = trim($query_name);
die "Syntax error in localconfig";
}
-sub LocalVarExists ($)
+sub LocalVarExists
{
my ($name) = @_;
return $main::{$name}; # if localconfig declared it, we're done.
}
my $newstuff = "";
-sub LocalVar ($$)
+sub LocalVar
{
my ($name, $definition) = @_;
return if LocalVarExists($name); # if localconfig declared it, we're done.
# Populate groups table
###########################################################################
-sub GroupDoesExist ($)
+sub GroupDoesExist
{
my ($name) = @_;
my $sth = $dbh->prepare("SELECT name FROM groups WHERE name='$name'");
my $headernum = 1;
-sub AddFDef ($$$) {
+sub AddFDef {
my ($name, $description, $mailhead) = (@_);
my $sth = $dbh->prepare("SELECT fieldid FROM fielddefs " .
# mkanat@bugzilla.org - bug 17453
# Create the values for the tables that hold what used to be enum types.
# Don't populate the tables if the table isn't empty.
-sub PopulateEnumTable ($@) {
+sub PopulateEnumTable {
my ($table, @valuelist) = @_;
# If we encounter any of the keys in this hash, they are
# Subs
###############################################################################
-sub MakeDocs($$) {
+sub MakeDocs {
my ($name, $cmdline) = @_;
my $template = Bugzilla->template;
my $vars = {};
-sub LoadTemplate ($) {
+sub LoadTemplate {
my $action = shift;
$action =~ /(\w+)/;
# TestComponent: just returns if the specified product/component combination exists
# CheckComponent: same check, optionally emit an error text
-sub TestProduct ($)
+sub TestProduct
{
my $prod = shift;
return FetchOneColumn();
}
-sub CheckProduct ($)
+sub CheckProduct
{
my $prod = shift;
}
}
-sub TestComponent ($$)
+sub TestComponent
{
my ($prod, $comp) = @_;
return FetchOneColumn();
}
-sub CheckComponent ($$)
+sub CheckComponent
{
my ($prod, $comp) = @_;
# added by the user and have passed all validation tests.
# The only way to have invalid product/component combinations is to
# hack the URL. So we silently ignore them, if any.
-sub validateAndSubmit ($) {
+sub validateAndSubmit {
my ($id) = @_;
my $dbh = Bugzilla->dbh;
my $action = trim($cgi->param('action') || '');
# RederiveRegexp: update user_group_map with regexp-based grants
-sub RederiveRegexp ($$)
+sub RederiveRegexp
{
my $regexp = shift;
my $gid = shift;
use vars qw($template $vars);
-sub Validate ($$) {
+sub Validate {
my ($name, $description) = @_;
if ($name eq "") {
ThrowUserError("keyword_blank_name");
# TestProduct: just returns if the specified product does exists
# CheckProduct: same check, optionally emit an error text
-sub TestProduct ($)
+sub TestProduct
{
my $prod = shift;
return FetchOneColumn();
}
-sub CheckProduct ($)
+sub CheckProduct
{
my $prod = shift;
# TestClassification: just returns if the specified classification does exists
# CheckClassification: same check, optionally emit an error text
-sub TestClassification ($)
+sub TestClassification
{
my $cl = shift;
return FetchOneColumn();
}
-sub CheckClassification ($)
+sub CheckClassification
{
my $cl = shift;
# we need this routine, which does things properly, and will
# eventually be the only version. (The older versions assume a
# $template->put_header() call has been made)
-sub CheckClassificationNew ($)
+sub CheckClassificationNew
{
my $cl = shift;
}
-sub CheckClassificationProduct ($$)
+sub CheckClassificationProduct
{
my $cl = shift;
my $prod = shift;
}
}
-sub CheckClassificationProductNew ($$)
+sub CheckClassificationProductNew
{
my ($cl, $prod) = @_;
my $dbh = Bugzilla->dbh;
# Displays the form to edit a products parameters
#
-sub EmitFormElements ($$$$$$$$$)
+sub EmitFormElements
{
my ($classification, $product, $description, $milestoneurl, $disallownew,
$votesperuser, $maxvotesperbug, $votestoconfirm, $defaultmilestone)
# Displays a text like "a.", "a or b.", "a, b or c.", "a, b, c or d."
#
-sub PutTrailer (@)
+sub PutTrailer
{
my (@links) = ("Back to the <A HREF=\"query.cgi\">query page</A>", @_);
######################################################################
# Returns whether or not the specified table exists in the @tables array.
-sub FieldExists ($) {
+sub FieldExists {
my ($field) = @_;
return lsearch(\@valid_fields, $field) >= 0;
}
# Same as FieldExists, but emits and error and dies if it fails.
-sub FieldMustExist ($) {
+sub FieldMustExist {
my ($field)= @_;
$field ||
}
# Returns if the specified value exists for the field specified.
-sub ValueExists ($$) {
+sub ValueExists {
my ($field, $value) = @_;
FieldMustExist($field);
trick_taint($field);
}
# Same check as ValueExists, emits an error text and dies if it fails.
-sub ValueMustExist ($$) {
+sub ValueMustExist {
my ($field, $value)= @_;
# Values may not be empty (it's very difficult to deal
# function and tests, if the comment was given.
# If comments are required for functions is defined by params.
#
-sub CheckonComment( $ ) {
+sub CheckonComment {
my ($function) = (@_);
# Param is 1 if comment should be added !
# General bug checks
###########################################################################
-sub BugCheck ($$;$$) {
+sub BugCheck {
my ($middlesql, $errortext, $repairparam, $repairtext) = @_;
SendSQL("SELECT DISTINCT bugs.bug_id " .
# No SavePermissions() because this panel has no changeable fields.
-sub DoSavedSearches() {
+sub DoSavedSearches {
# 2004-12-13 - colin.ogilvie@gmail.com, bug 274397
# Need to work around the possibly missing query_format=advanced
$vars->{'user'} = Bugzilla->user;
$vars->{'queries'} = \@newqueries;
}
-sub SaveSavedSearches() {
+sub SaveSavedSearches {
my $cgi = Bugzilla->cgi;
my $dbh = Bugzilla->dbh;
my @queries = @{Bugzilla->user->queries};