git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Performance timing measurements
[exim.git]
/
src
/
src
/
exigrep.src
diff --git
a/src/src/exigrep.src
b/src/src/exigrep.src
index 851ca63bba57750e0d05e928f1794c1e0d83f507..afd3538b69b4e55eddbd1f2fc391eaa3be325073 100644
(file)
--- a/
src/src/exigrep.src
+++ b/
src/src/exigrep.src
@@
-5,9
+5,10
@@
use strict;
BEGIN { pop @INC if $INC[-1] eq '.' };
use Pod::Usage;
BEGIN { pop @INC if $INC[-1] eq '.' };
use Pod::Usage;
-use Getopt::Long;
+use Getopt::Long qw(:config no_ignore_case);
+use File::Basename;
-# Copyright (c) 2007-201
5
University of Cambridge.
+# Copyright (c) 2007-201
7
University of Cambridge.
# See the file NOTICE for conditions of use and distribution.
# Except when they appear in comments, the following placeholders in this
# See the file NOTICE for conditions of use and distribution.
# Except when they appear in comments, the following placeholders in this
@@
-45,7
+46,7
@@
use POSIX qw(mktime);
sub seconds {
my($year,$month,$day,$hour,$min,$sec,$tzs,$tzh,$tzm) =
sub seconds {
my($year,$month,$day,$hour,$min,$sec,$tzs,$tzh,$tzm) =
- $_[0] =~ /^(\d{4})-(\d\d)-(\d\d)\s(\d\d):(\d\d):(\d\d)(?>\s([+-])(\d\d)(\d\d))?/o;
+ $_[0] =~ /^(\d{4})-(\d\d)-(\d\d)\s(\d\d):(\d\d):(\d\d)(?
:.\d+)?(?
>\s([+-])(\d\d)(\d\d))?/o;
my $seconds = mktime $sec, $min, $hour, $day, $month - 1, $year - 1900;
my $seconds = mktime $sec, $min, $hour, $day, $month - 1, $year - 1900;
@@
-83,7
+84,7
@@
sub do_line {
if (!/^\d{4}-/o) { $_ =~ s/^.*? exim\b.*?: //o; }
return unless
if (!/^\d{4}-/o) { $_ =~ s/^.*? exim\b.*?: //o; }
return unless
- my($date,$id) = /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d (?:[+-]\d{4} )?)(?:\[\d+\] )?(\w{6}\-\w{6}\-\w{2})?/o;
+ my($date,$id) = /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d
(?:\.\d+)?
(?:[+-]\d{4} )?)(?:\[\d+\] )?(\w{6}\-\w{6}\-\w{2})?/o;
# Handle the case when the log line belongs to a specific message. We save
# lines for specific messages until the message is complete. Then either print
# Handle the case when the log line belongs to a specific message. We save
# lines for specific messages until the message is complete. Then either print
@@
-124,7
+125,7
@@
if (defined $id)
if (index($_, 'Completed') != -1 ||
index($_, 'SMTP data timeout') != -1 ||
(index($_, 'rejected') != -1 &&
if (index($_, 'Completed') != -1 ||
index($_, 'SMTP data timeout') != -1 ||
(index($_, 'rejected') != -1 &&
- /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d (?:[+-]\d{4} )?)(?:\[\d+\] )?\w{6}\-\w{6}\-\w{2} rejected/o))
+ /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d
(?:\.\d+)?
(?:[+-]\d{4} )?)(?:\[\d+\] )?\w{6}\-\w{6}\-\w{2} rejected/o))
{
if ($queue_time != -1 &&
$saved{$id} =~ /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d ([+-]\d{4} )?)/o)
{
if ($queue_time != -1 &&
$saved{$id} =~ /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d ([+-]\d{4} )?)/o)
@@
-229,6
+230,12
@@
GetOptions(
-noperldoc => system('perldoc -V 2>/dev/null >&2')
);
},
-noperldoc => system('perldoc -V 2>/dev/null >&2')
);
},
+ 'version' => sub {
+ print basename($0) . ": $0\n",
+ "build: EXIM_RELEASE_VERSIONEXIM_VARIANT_VERSION\n",
+ "perl(runtime): $]\n";
+ exit 0;
+ },
) and @ARGV or pod2usage;
$pattern = shift @ARGV;
) and @ARGV or pod2usage;
$pattern = shift @ARGV;
@@
-237,7
+244,8
@@
$pattern = quotemeta $pattern if $literal;
# Start a pager if output goes to a terminal
if (-t 1 and $use_pager)
{
# Start a pager if output goes to a terminal
if (-t 1 and $use_pager)
{
- foreach ($ENV{PAGER}//(), 'less', 'more')
+ # for perl >= v5.10.x: foreach ($ENV{PAGER}//(), 'less', 'more')
+ foreach (defined $ENV{PAGER} ? $ENV{PAGER} : (), 'less', 'more')
{
local $ENV{LESS} .= ' --no-init --quit-if-one-screen';
open(my $pager, '|-', $_) or next;
{
local $ENV{LESS} .= ' --no-init --quit-if-one-screen';
open(my $pager, '|-', $_) or next;
@@
-346,7
+354,7
@@
Do not use a pager, even if STDOUT is connected to a terminal.
=item B<-h>|B<--help>
Print a short reference help. For more detailed help try L<exigrep(8)>,
=item B<-h>|B<--help>
Print a short reference help. For more detailed help try L<exigrep(8)>,
-or C<exigrep -
m
>.
+or C<exigrep -
-man
>.
=item B<-m>|B<--man>
=item B<-m>|B<--man>