package Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
$class->request_cache->{error_mode} = $newval;
}
- # XXX - Once we require Perl 5.10.1, this test can be replaced by //.
if (exists $class->request_cache->{error_mode}) {
return $class->request_cache->{error_mode};
}
$class->request_cache->{usage_mode} = $newval;
}
- # XXX - Once we require Perl 5.10.1, this test can be replaced by //.
if (exists $class->request_cache->{usage_mode}) {
return $class->request_cache->{usage_mode};
}
package Bugzilla::API::1_0::Constants;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Bug;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my %options = ( fields => ['bug_id'] );
# Find the highest custom field id
- my @field_ids = grep(/^f(\d+)$/, keys %$match_params);
+ my @field_ids = grep(/^f(\d+)$/a, keys %$match_params);
my $last_field_id = @field_ids ? max @field_ids + 1 : 1;
# Do special search types for certain fields.
package Bugzilla::API::1_0::Resource::BugUserLastVisit;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
);
sub REST_RESOURCES {
+ use re '/a';
return [
# bug-id
qr{^/bug_user_last_visit/(\d+)$}, {
package Bugzilla::API::1_0::Resource::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Classification;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Component;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::FlagType;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Group;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Product;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::User;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Server;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::Server;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Attachment;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Attachment::PatchReader;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login::APIKey;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login::CGI;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login::Cookie;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login::Env;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Login::Stack;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Persist::Cookie;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Verify;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Verify::DB;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Verify::LDAP;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Verify::RADIUS;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Auth::Verify::Stack;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Bug;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my $class = ref($invocant) || $invocant;
my $param = shift;
+ # Let's not be abused by pseudo-numbers.
+ use re '/a';
+
# Remove leading "#" mark if we've just been passed an id.
if (!ref $param && $param =~ /^#(\d+)$/) {
$param = $1;
my $comments = shift;
my @bug_ids;
+ # Let's not be abused by pseudo-numbers.
+ use re '/a';
+
my $params = Bugzilla->params;
my @urlbases = ($params->{'urlbase'});
push(@urlbases, $params->{'sslbase'}) if $params->{'sslbase'};
}
}
# Replace all aliases by their corresponding bug ID.
- @bug_ids = map { $_ =~ /^(\d+)$/ ? $1 : $invocant->check($_, $type)->id } @bug_ids;
+ @bug_ids = map { $_ =~ /^(\d+)$/a ? $1 : $invocant->check($_, $type)->id } @bug_ids;
$deps_in{$type} = \@bug_ids;
}
# equivalent for characters above U+FFFF as MySQL older than 5.5.3
# cannot store them, see Bugzilla::Comment::_check_thetext().
if ($is_mysql) {
- # Perl 5.13.8 and older complain about non-characters.
- no warnings 'utf8';
$comment->{thetext} =~ s/\x{FDD0}\[U\+((?:[1-9A-F]|10)[0-9A-F]{4})\]\x{FDD1}/chr(hex $1)/eg
}
}
package Bugzilla::BugMail;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Bugzilla::Local;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Debian;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
return ((lc($uri->authority) eq 'bugs.debian.org'
or lc($uri->authority) eq 'debbugs.gnu.org')
and (($uri->path =~ /bugreport\.cgi$/
- and $uri->query_param('bug') =~ m|^\d+$|)
- or $uri->path =~ m|^/\d+$|)) ? 1 : 0;
+ and $uri->query_param('bug') =~ m|^\d+$|a)
+ or $uri->path =~ m|^/\d+$|a)) ? 1 : 0;
}
sub _check_value {
# This is the shortest standard URL form for Debian BTS URLs,
# and so we reduce all URLs to this.
- $uri->path =~ m|^/(\d+)$| || $uri->query_param('bug') =~ m|^(\d+)$|;
+ $uri->path =~ m|^/(\d+)$|a || $uri->query_param('bug') =~ m|^(\d+)$|a;
$uri = new URI('https://' . $uri->authority . '/' . $1);
return $uri;
package Bugzilla::BugUrl::GitHub;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Google;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::JIRA;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Launchpad;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# https://launchpad.net/bugs/1234
# All variations end with either "/bugs/1234" or "/+bug/1234"
return ($uri->authority =~ /launchpad\.net$/
- and $uri->path =~ m|bugs?/\d+$|) ? 1 : 0;
+ and $uri->path =~ m|bugs?/\d+$|a) ? 1 : 0;
}
sub _check_value {
# This is the shortest standard URL form for Launchpad bugs,
# and so we reduce all URLs to this.
- $uri->path =~ m|bugs?/(\d+)$|;
+ $uri->path =~ m|bugs?/(\d+)$|a;
$uri = new URI("https://launchpad.net/bugs/$1");
return $uri;
package Bugzilla::BugUrl::MantisBT;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::SourceForge;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUrl::Trac;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::BugUserLastVisit;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::CGI;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# the same points.
package Bugzilla::Chart;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# >=1&labelgt=Grand+Total
foreach my $param ($cgi->param()) {
# Store all the lines
- if ($param =~ /^line(\d+)$/) {
+ if ($param =~ /^line(\d+)$/a) {
foreach my $series_id ($cgi->param($param)) {
detaint_natural($series_id)
|| ThrowCodeError("invalid_series_id");
}
# Store all the labels
- if ($param =~ /^label(\d+)$/) {
+ if ($param =~ /^label(\d+)$/a) {
$self->{'labels'}[$1] = $cgi->param($param);
}
}
package Bugzilla::Classification;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Comment;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# XXX - Once we use utf8mb4 for comments, this hack for MySQL can go away.
state $is_mysql = Bugzilla->dbh->isa('Bugzilla::DB::Mysql') ? 1 : 0;
if ($is_mysql) {
- # Perl 5.13.8 and older complain about non-characters.
- no warnings 'utf8';
$thetext =~ s/([\x{10000}-\x{10FFFF}])/"\x{FDD0}[" . uc(sprintf('U+%04x', ord($1))) . "]\x{FDD1}"/eg;
}
package Bugzilla::Comment::TagWeights;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Component;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Admin;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Advanced;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Attachment;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Auth;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::BugChange;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::BugFields;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Common;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Core;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::General;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::GroupSecurity;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::LDAP;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::MTA;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Memcached;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::Query;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::RADIUS;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::ShadowDB;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Config::UserMatch;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Constants;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Mysql;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Oracle;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Oracle::st;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Pg;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#
###########################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#
###############################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
$default = 0 if $default =~ /^0\.0+$/;
# If we're not a number, we're a string and need to be
# quoted.
- $default = $dbh->quote($default) if !($default =~ /^(-)?(\d+)(.\d+)?$/);
+ $default = $dbh->quote($default) if !($default =~ /^(-)?(\d+)(\.\d+)?$/a);
$column->{DEFAULT} = $default;
}
}
#
###############################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#
###############################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Schema::Sqlite;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::DB::Sqlite;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Error;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Field;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Field::Choice;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Field::ChoiceInterface;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Flag;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
}
# Extract a list of flag type IDs from field names.
- my @flagtype_ids = map(/^flag_type-(\d+)$/ ? $1 : (), $cgi->param());
+ my @flagtype_ids = map(/^flag_type-(\d+)$/a ? $1 : (), $cgi->param());
@flagtype_ids = grep($cgi->param("flag_type-$_") ne 'X', @flagtype_ids);
# Extract a list of existing flag IDs.
- my @flag_ids = map(/^flag-(\d+)$/ ? $1 : (), $cgi->param());
+ my @flag_ids = map(/^flag-(\d+)$/a ? $1 : (), $cgi->param());
return ([], []) unless (scalar(@flagtype_ids) || scalar(@flag_ids));
}
# Extract a list of flag type IDs from field names.
- my @flagtype_ids = map(/^flag_type-(\d+)$/ ? $1 : (), $cgi->param());
+ my @flagtype_ids = map(/^flag_type-(\d+)$/a ? $1 : (), $cgi->param());
my (@new_flags, @flags);
package Bugzilla::FlagType;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Group;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Hook;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# make those assumptions, then it should go into one of the
# packages under the Bugzilla::Install namespace.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# NOTE: This package may "use" any modules that it likes,
# localconfig is available, and params are up to date.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# * Files do not have the correct permissions.
# * The database does not exist.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# * Files do not have the correct permissions
# * The database is not up to date
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Subroutines may "require" and "import" from modules, but they
# MUST NOT "use."
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# module may require *only* Bugzilla::Constants and built-in
# perl modules.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Job::BugMail;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Job::Mailer;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::JobQueue;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::JobQueue::Runner;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Keyword;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
use strict;
use warnings;
-use 5.10.1;
+use 5.14.0;
use parent qw(Email::MIME);
use Encode qw(encode);
package Bugzilla::Mailer;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Markdown;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Memcached;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Migrate;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Migrate::Gnats;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Milestone;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Object;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Product;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::RNG;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Report;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Search;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my ($self) = @_;
my $params = $self->_params;
- my @email_params = grep { $_ =~ /^email\d+$/ } keys %$params;
+ my @email_params = grep { $_ =~ /^email\d+$/a } keys %$params;
my $clause = new Bugzilla::Search::Clause();
foreach my $param (@email_params) {
- $param =~ /(\d+)$/;
+ $param =~ /(\d+)$/a;
my $id = $1;
my $email = trim($params->{"email$id"});
next if !$email;
sub _boolean_charts {
my ($self) = @_;
-
+
+ use re '/a';
+
my $params = $self->_params;
my @param_list = keys %$params;
-
+
my @all_field_params = grep { /^field-?\d+/ } @param_list;
my @chart_ids = map { /^field(-?\d+)/; $1 } @all_field_params;
@chart_ids = sort { $a <=> $b } uniq @chart_ids;
-
+
my $clause = new Bugzilla::Search::Clause();
foreach my $chart_id (@chart_ids) {
my @all_and = grep { /^field$chart_id-\d+/ } @param_list;
my @and_ids = map { /^field$chart_id-(\d+)/; $1 } @all_and;
@and_ids = sort { $a <=> $b } uniq @and_ids;
-
+
my $and_clause = new Bugzilla::Search::Clause();
foreach my $and_id (@and_ids) {
my @all_or = grep { /^field$chart_id-$and_id-\d+/ } @param_list;
my @or_ids = map { /^field$chart_id-$and_id-(\d+)/; $1 } @all_or;
@or_ids = sort { $a <=> $b } uniq @or_ids;
-
+
my $or_clause = new Bugzilla::Search::Clause('OR');
foreach my $or_id (@or_ids) {
my $identifier = "$chart_id-$and_id-$or_id";
my ($self) = @_;
my $params = $self->_params;
my @param_list = keys %$params;
-
- my @field_params = grep { /^f\d+$/ } @param_list;
- my @field_ids = map { /(\d+)/; $1 } @field_params;
+
+ my @field_params = grep { /^f\d+$/a } @param_list;
+ my @field_ids = map { /(\d+)/a; $1 } @field_params;
@field_ids = sort { $a <=> $b } @field_ids;
return @field_ids;
}
# once we require MySQL 5.5.3 and use utf8mb4.
sub _convert_unicode_characters {
my $string = shift;
-
- # Perl 5.13.8 and older complain about non-characters.
- no warnings 'utf8';
$string =~ s/([\x{10000}-\x{10FFFF}])/"\x{FDD0}[" . uc(sprintf('U+%04x', ord($1))) . "]\x{FDD1}"/eg;
return $string;
}
return sprintf("%4d-%02d-%02d %02d:%02d:%02d", $year+1900, $month+1, $mday, $hour, $min, $sec);
}
- if ($str =~ /^(-|\+)?(\d+)([hdwmy])(s?)$/i) { # relative date
+ if ($str =~ /^(-|\+)?(\d+)([hdwmy])(s?)$/ai) { # relative date
my ($sign, $amount, $unit, $startof, $date) = ($1, $2, lc $3, lc $4, time);
my ($sec, $min, $hour, $mday, $month, $year, $wday) = localtime($date);
if ($sign && $sign eq '+') { $amount = -$amount; }
package Bugzilla::Search::Clause;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Search::ClauseGroup;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Search::Condition;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Search::Quicksearch;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my ($word, $negate) = @_;
# P1-5 Syntax
- if ($word =~ m/^P(\d+)(?:-(\d+))?$/i) {
+ if ($word =~ m/^P(\d+)(?:-(\d+))?$/ai) {
my ($p_start, $p_end) = ($1, $2);
my $legal_priorities = get_legal_field_values('priority');
package Bugzilla::Search::Recent;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Search::Saved;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Sender::Transport::Sendmail;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Series;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Status;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Template;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# mailto can't contain space or #, so we don't have to bother for that
# Do this by replacing matches with \x{FDD2}$count\x{FDD3}
# \x{FDDx} is used because it's unlikely to occur in the text
- # and are reserved unicode characters. We disable warnings for now
- # until we require Perl 5.13.9 or newer.
- no warnings 'utf8';
+ # and are reserved unicode characters.
# If the comment is already wrapped, we should ignore newlines when
# looking for matching regexps. Else we should take them into account.
# Also, we can't use $bug_re?$comment_re? because that will match the
# empty string
my $bug_word = template_var('terms')->{bug};
- my $bug_re = qr/\Q$bug_word\E$s*\#?$s*(\d+)/i;
+ my $bug_re = qr/\Q$bug_word\E$s*\#?$s*(\d+)/ai;
my $comment_word = template_var('terms')->{comment};
- my $comment_re = qr/(?:\Q$comment_word\E|comment)$s*\#?$s*(\d+)/i;
+ my $comment_re = qr/(?:\Q$comment_word\E|comment)$s*\#?$s*(\d+)/ai;
$text =~ s~\b($bug_re(?:$s*,?$s*$comment_re)?|$comment_re)
~ # We have several choices. $1 here is the link, and $2-4 are set
# depending on which part matched
# This exists to implement the template-before_process hook.
package Bugzilla::Template::Context;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Template::Plugin::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Template::Plugin::Hook;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Token;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Update;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::User;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# The field is a requestee field; in order for its name
# to show up correctly on the confirmation page, we need
# to find out the name of its flag type.
- if ($field_name =~ /^requestee(_type)?-(\d+)$/) {
+ if ($field_name =~ /^requestee(_type)?-(\d+)$/a) {
my $flag_type;
if ($1) {
require Bugzilla::FlagType;
package Bugzilla::User::APIKey;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::User::Setting;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::User::Setting::Lang;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::User::Setting::Skin;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::User::Setting::Timezone;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::UserAgent;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
}
sub detaint_natural {
- my $match = $_[0] =~ /^(\d+)$/;
+ my $match = $_[0] =~ /^(\d+)$/a;
$_[0] = $match ? int($1) : undef;
return (defined($_[0]));
}
sub detaint_signed {
- my $match = $_[0] =~ /^([-+]?\d+)$/;
+ my $match = $_[0] =~ /^([-+]?\d+)$/a;
# The "int()" call removes any leading plus sign.
$_[0] = $match ? int($1) : undef;
return (defined($_[0]));
if ($ts) {
$date2 = time2str("%Y-%m-%d", $ts);
- $date =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/;
- $date2 =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/;
+ $date =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/a;
+ $date2 =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/a;
}
my $ret = ($ts && $date eq $date2);
return $ret ? 1 : 0;
package Bugzilla::Version;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# actual RPC server, see Bugzilla::WebService::Server and its subclasses.
package Bugzilla::WebService;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Bug;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my %options = ( fields => ['bug_id'] );
# Find the highest custom field id
- my @field_ids = grep(/^f(\d+)$/, keys %$match_params);
+ my @field_ids = grep(/^f(\d+)$/a, keys %$match_params);
my $last_field_id = @field_ids ? max @field_ids + 1 : 1;
# Do special search types for certain fields.
package Bugzilla::WebService::BugUserLastVisit;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Classification;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Component;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Constants;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::FlagType;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Group;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Product;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Server;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Server::JSONRPC;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Server::XMLRPC;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# and also, in some cases, to more-usefully decode them.
package Bugzilla::XMLRPC::Deserializer;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::XMLRPC::SOM;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# See http://rt.cpan.org/Public/Bug/Display.html?id=32952.
package Bugzilla::XMLRPC::Serializer;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::User;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::WebService::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Whine;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Whine::Query;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Whine::Schedule;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Initialization
######################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
+
use lib qw(. lib local/lib/perl5);
use ExtUtils::MakeMaker 6.55;
VERSION => BUGZILLA_VERSION,
ABSTRACT => 'Bugzilla Bug Tracking System',
LICENSE => 'Mozilla_2_0',
- MIN_PERL_VERSION => '5.10.1',
+ MIN_PERL_VERSION => '5.14.0',
CONFIGURE_REQUIRES => { 'ExtUtils::MakeMaker' => '6.55' },
PREREQ_PM => \%requires,
TEST_REQUIRES => {
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Bonus:
# Offer subscription when you get a "series already exists" error?
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Return a list of IDs of all the lines selected in the UI.
sub getSelectedLines {
- my @ids = map { /^select(\d+)$/ ? $1 : () } $cgi->param();
+ my @ids = map { /^select(\d+)$/a ? $1 : () } $cgi->param();
return @ids;
}
# Initialization
######################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
=cut
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
use lib qw(. lib local/lib/perl5);
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
=cut
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# mysqld-watcher.pl - a script that watches the running instance of
# mysqld and kills off any long-running SELECTs against the shadow_db
#
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
script_line1 = use strict;
script_line2 = use warnings;
-script_line3 = use v5.10;
+script_line3 = use v5.14;
script_line4 = use Bugzilla;
script_line5 = Bugzilla->extensions; 1;
script_line6 = sub filter { Bugzilla->template->{SERVICE}->{CONTEXT}->{CONFIG}->{FILTERS}->{$_[0]} }
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# General information about the project.
project = u'Bugzilla'
-copyright = u'2014, The Bugzilla Team'
+copyright = u'2016, The Bugzilla Team'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
.. role:: field
:class: field
-.. |min-perl-ver| replace:: 5.10.1
+.. |min-perl-ver| replace:: 5.14.0
"""
rst_epilog = """
package Pod::Simple::HTML::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Pod::Simple::HTMLBatch::Bugzilla;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# All these TeX packages together are close to a gig :-| But after you've
# installed them, you can remove texlive-latex-extra-doc to save 400MB.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my @now_na = ();
my @now_mandatory = ();
foreach my $f ($cgi->param()) {
- if ($f =~ /^membercontrol_(\d+)$/) {
+ if ($f =~ /^membercontrol_(\d+)$/a) {
my $id = $1;
if ($cgi->param($f) == CONTROLMAPNA) {
push @now_na,$id;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Script Initialization
################################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#
##############################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::BmpConvert;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::BmpConvert;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::API::1_0::Resource::Example;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
use parent qw(Bugzilla::API::1_0::Resource);
package Bugzilla::Extension::Example;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Example;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my $new_error_msg = "Ah ah, you tried to access $page_id? Good try!";
$new_error_msg = html_quote($new_error_msg);
# There are better tools to parse an HTML page, but it's just an example.
- # Since Perl 5.16, we can no longer write "class" inside look-behind
- # assertions, because "ss" is also seen as the german ß character, which
- # makes Perl 5.16 complain. The right fix is to use the /aa modifier,
- # but it's only understood since Perl 5.14. So the workaround is to write
- # "clas[s]" instead of "class". Stupid and ugly hack, but it works with
- # all Perl versions.
- $$page =~ s/(?<=<td id="error_msg" clas[s]="throw_error">).*(?=<\/td>)/$new_error_msg/si;
+ $$page =~ s/<div id="error_msg" class="throw_error">\K(.*)/$new_error_msg<br>$1/siaa;
}
sub flag_end_of_update {
package Bugzilla::Extension::Example::Auth::Login;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Example::Auth::Verify;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Example::Config;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
=cut
package Bugzilla::Extension::Example::Migrate::ImportBugs;
+
+use 5.14.0
use strict;
-use base qw(Bugzilla::Migrate);
+use warnings;
+
+use parent qw(Bugzilla::Migrate);
use Bugzilla::Constants;
use Bugzilla::Install::Util qw(indicate_progress);
package Bugzilla::Extension::Example::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Example::WebService;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
use parent qw(Bugzilla::WebService);
package Bugzilla::Extension::MoreBugUrl;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::BitBucket;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::GetSatisfaction;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::PHP;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::Phabricator;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::RT;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::Redmine;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::ReviewBoard;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::Rietveld;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::MoreBugUrl::Savane;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Voting;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::Voting;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Initialization
######################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
-use lib qw(lib local/lib/perl5);
+
+use lib qw(. lib local/lib/perl5);
+
use Getopt::Long qw(:config gnu_getopt);
if (-f "MYMETA.json") {
# a new bug into bugzilla. Everything before the beginning <?xml line
# is removed so you can pipe in email messages.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::ModPerl;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::ModPerl::ResponseHandler;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::ModPerl::CleanupHandler;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# a content-type, e.g. html.
###############################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
my %is_private;
foreach my $field (grep(/^defined_isprivate/, $cgi->param())) {
- $field =~ /(\d+)$/;
- my $comment_id = $1;
- $is_private{$comment_id} = $cgi->param("isprivate_$comment_id");
+ if ($field =~ /(\d+)$/a) {
+ my $comment_id = $1;
+ $is_private{$comment_id} = $cgi->param("isprivate_$comment_id");
+ }
}
$set_all_fields{comment_is_private} = \%is_private;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
push @bugs, Bugzilla::Bug->check({ id => $id, cache => 1 });
if (defined $cgi->param('mark')) {
foreach my $range (split ',', $cgi->param('mark')) {
- if ($range =~ /^(\d+)-(\d+)$/) {
+ if ($range =~ /^(\d+)-(\d+)$/a) {
foreach my $i ($1..$2) {
$marks{$i} = 1;
}
- } elsif ($range =~ /^(\d+)$/) {
+ } elsif ($range =~ /^(\d+)$/a) {
$marks{$1} = 1;
}
}
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 1#
###Compilation###
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 2#
####GoodPerl#####
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
next;
}
while (my $file_line = <FILE>) {
- $found_use_perl = 1 if $file_line =~ m/^\s*use 5.10.1/;
+ $found_use_perl = 1 if $file_line =~ m/^\s*use 5\.14\.0/;
$found_use_strict = 1 if $file_line =~ m/^\s*use strict/;
$found_use_warnings = 1 if $file_line =~ m/^\s*use warnings/;
last if ($found_use_perl && $found_use_strict && $found_use_warnings);
}
close (FILE);
if ($found_use_perl) {
- ok(1,"$file requires Perl 5.10.1");
+ ok(1,"$file requires Perl 5.14.0");
} else {
- ok(0,"$file DOES NOT require Perl 5.10.1 --WARNING");
+ ok(0,"$file DOES NOT require Perl 5.14.0 --WARNING");
}
if ($found_use_strict) {
#Bugzilla Test 4#
####Templates####
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 5#
#####no_tabs#####
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 6#
####Spelling#####
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 7#
#####Util.pm#####
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Sample exploit code: '>"><script>alert('Oh dear...')</script>
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# "[% terms.bug %]". This test makes sure the relevant words aren't used
# bare.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 10#
## dependencies ##
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 11#
##POD validation##
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
#Bugzilla Test 12#
######Errors######
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Check the Bugzilla database schema to ensure no field names conflict
# with SQL reserved words.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Enforce high standards against code that will be installed
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
+
+use lib qw(. lib local/lib/perl5 t);
+
use Test::More;
use File::Spec::Functions ':ALL';
package Support::Files;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Support::Systemexec;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Support::Templates;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::[% name %];
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::[% name %];
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::[% name %]::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# are being run instead of shown. This script does not rely on database access
# or correct params.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# as its only argument. It attempts to troubleshoot as many installation
# issues as possible.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Remove any bug ids the user no longer wants to ignore
foreach my $key (grep(/^remove_ignored_bug_/, $cgi->param)) {
- my ($bug_id) = $key =~ /(\d+)$/;
+ my ($bug_id) = $key =~ /(\d+)$/a;
delete $ignored_bugs{$bug_id};
}
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This script remains as a backwards-compatibility URL for before
# the time that Voting was an extension.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Script Initialization
################################################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# param. (We have NEW and REOPENED in there to keep compatibility with old
# Bugzillas.)
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# -*- Mode: perl; indent-tabs-mode: nil -*-
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::QA;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package Bugzilla::Extension::QA;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
-use base qw(Bugzilla::Extension);
+use parent qw(Bugzilla::Extension);
use Bugzilla::Extension::QA::Util;
use Bugzilla::Constants;
package Bugzilla::Extension::QA::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
-use base qw(Exporter);
+use parent qw(Exporter);
our @EXPORT = qw(
parse_output
package QA::REST;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package QA::RPC;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package QA::RPC::JSONRPC;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package QA::RPC::XMLRPC;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package QA::Tests;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
package QA::Util;
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Tests for REST calls in Bugzilla.pm #
#######################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Tests for REST calls in Classification.pm #
#############################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.add_comment() #
#############################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.comments() #
##########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.create() #
########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.get() #
###########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.history() #
#########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.legal_values() #
##############################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.search() #
########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Bug.update_see_also() #
#################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call functions in Bugzilla.pm #
##################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Group.create() #
##########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to Product.create() #
############################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Product.get() #
########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to User.Create() #
#########################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to User.get() #
######################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to User.login() and User.logout() #
##########################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;
# Test for xmlrpc call to User.offer_account_by_email() #
#########################################################
-use 5.10.1;
+use 5.14.0;
use strict;
use warnings;