X-Git-Url: http://git.shiar.net/git-grep-footer.git/blobdiff_plain/77f33263e87e436c6e2a962c69a68f12c4520bf8..4f6e72fcfbd46e21ebf1aa595f7738730e42ad37:/git-grep-footer diff --git a/git-grep-footer b/git-grep-footer index c39222f..b676ab8 100755 --- a/git-grep-footer +++ b/git-grep-footer @@ -23,7 +23,7 @@ GetOptions(\my %opt, local $| = 1; local $/ = "\0"; -my $HEADERMATCH = qr/ [a-z]+ (?: (?:-\w+)+ | \ by ) /ix; +my $HEADERMATCH = qr/ [a-z]+ (?: (?:-\w+)+ | \ by ) | cc | reference /ix; my (%headercount, @headercache); @@ -85,7 +85,7 @@ while (readline) { }{<...>}imsx; } when (['var', 'vars', '']) { - when ($header[0] =~ /[ _-] (?: by | to ) $/imsx) { + when ($header[0] =~ /[ _-] (?: by | to ) $ | ^cc$/imsx) { $header[1] = undef; } for ($header[1]) { @@ -125,7 +125,7 @@ while (readline) { my $line = $_->[2] // join(': ', @$_); $line =~ s/^/$hash / if defined $hash; - if (defined $opt{min} or $opt{max}) { + if (defined $opt{min} or $opt{max} or $opt{count}) { my $counter = \$headercount{ $_->[0] }->{ $_->[1] // '' }; my $excess = $$counter++ - ($opt{min} // 0); next if $excess >= ($opt{max} || 1); @@ -163,6 +163,7 @@ a common convention to list custom metadata such as C and C. Sections are identified by at least one leading keyword containing a dash +(or exceptionally recognised) followed by a colon. =head1 OPTIONS @@ -210,6 +211,11 @@ The original line is given for each match, but simplifications still apply for duplicate determination. Additional samples are optionally given upto the given maximum. +=item -c, --count + +Prefixes (unique) lines by the number of occurrences. +Causes output to be buffered until all input has been read (obviously). + =back =head1 AUTHOR