|
@@ -41,6 +41,7 @@ my $web = 0;
|
|
my $subsystem = 0;
|
|
my $subsystem = 0;
|
|
my $status = 0;
|
|
my $status = 0;
|
|
my $keywords = 1;
|
|
my $keywords = 1;
|
|
|
|
+my $sections = 0;
|
|
my $file_emails = 0;
|
|
my $file_emails = 0;
|
|
my $from_filename = 0;
|
|
my $from_filename = 0;
|
|
my $pattern_depth = 0;
|
|
my $pattern_depth = 0;
|
|
@@ -121,6 +122,7 @@ if (!GetOptions(
|
|
'web!' => \$web,
|
|
'web!' => \$web,
|
|
'pattern-depth=i' => \$pattern_depth,
|
|
'pattern-depth=i' => \$pattern_depth,
|
|
'k|keywords!' => \$keywords,
|
|
'k|keywords!' => \$keywords,
|
|
|
|
+ 'sections!' => \$sections,
|
|
'fe|file-emails!' => \$file_emails,
|
|
'fe|file-emails!' => \$file_emails,
|
|
'f|file' => \$from_filename,
|
|
'f|file' => \$from_filename,
|
|
'v|version' => \$version,
|
|
'v|version' => \$version,
|
|
@@ -152,10 +154,20 @@ if ($output_rolestats) {
|
|
$output_roles = 1;
|
|
$output_roles = 1;
|
|
}
|
|
}
|
|
|
|
|
|
-my $selections = $email + $scm + $status + $subsystem + $web;
|
|
|
|
-if ($selections == 0) {
|
|
|
|
- usage();
|
|
|
|
- die "$P: Missing required option: email, scm, status, subsystem or web\n";
|
|
|
|
|
|
+if ($sections) {
|
|
|
|
+ $email = 0;
|
|
|
|
+ $email_list = 0;
|
|
|
|
+ $scm = 0;
|
|
|
|
+ $status = 0;
|
|
|
|
+ $subsystem = 0;
|
|
|
|
+ $web = 0;
|
|
|
|
+ $keywords = 0;
|
|
|
|
+} else {
|
|
|
|
+ my $selections = $email + $scm + $status + $subsystem + $web;
|
|
|
|
+ if ($selections == 0) {
|
|
|
|
+ usage();
|
|
|
|
+ die "$P: Missing required option: email, scm, status, subsystem or web\n";
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if ($email &&
|
|
if ($email &&
|
|
@@ -357,6 +369,21 @@ foreach my $file (@files) {
|
|
|
|
|
|
foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) {
|
|
foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) {
|
|
add_categories($line);
|
|
add_categories($line);
|
|
|
|
+ if ($sections) {
|
|
|
|
+ my $i;
|
|
|
|
+ my $start = find_starting_index($line);
|
|
|
|
+ my $end = find_ending_index($line);
|
|
|
|
+ for ($i = $start; $i < $end; $i++) {
|
|
|
|
+ my $line = $typevalue[$i];
|
|
|
|
+ if ($line =~ /^[FX]:/) { ##Restore file patterns
|
|
|
|
+ $line =~ s/([^\\])\.([^\*])/$1\?$2/g;
|
|
|
|
+ $line =~ s/([^\\])\.$/$1\?/g; ##Convert . back to ?
|
|
|
|
+ $line =~ s/\\\./\./g; ##Convert \. to .
|
|
|
|
+ $line =~ s/\.\*/\*/g; ##Convert .* to *
|
|
|
|
+ }
|
|
|
|
+ print("$line\n");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if ($email && $email_git) {
|
|
if ($email && $email_git) {
|
|
@@ -486,6 +513,7 @@ Output type options:
|
|
Other options:
|
|
Other options:
|
|
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
|
|
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
|
|
--keywords => scan patch for keywords (default: 1 (on))
|
|
--keywords => scan patch for keywords (default: 1 (on))
|
|
|
|
+ --sections => print the entire subsystem sections with pattern matches
|
|
--version => show version
|
|
--version => show version
|
|
--help => show this help information
|
|
--help => show this help information
|
|
|
|
|