From 64d81e7477ec32dec9fa48facb5a4024e7bc5ab2 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Fri, 24 Aug 2012 03:05:05 +0000 Subject: Check for PFNAME #define as it is a common substitute for a literal string for the proto filter name and consider it the proto filter name. Ignore "duplicates" that are generated because a display filter is prefixed by a #define (which checkfiltername.pl is not smart enough to handle), causing an empty string svn path=/trunk/; revision=44654 --- tools/checkfiltername.pl | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/checkfiltername.pl b/tools/checkfiltername.pl index 12f7405fee..cf738b0bdb 100755 --- a/tools/checkfiltername.pl +++ b/tools/checkfiltername.pl @@ -86,6 +86,7 @@ my $filecount = 0; my $currfile = ""; my $protabbrev = ""; my $protabbrev_index; +my $PFNAME_value = ""; my $linenumber = 1; my $totalerrorcount = 0; my $errorfilecount = 0; @@ -121,7 +122,7 @@ sub checkprotoabbrev { $afterabbrev = substr($_[0], $abbrevpos+1, length($_[0])-$abbrevpos); $afterabbrev = substr($afterabbrev, 0, length($abbrev)); } - + if ($abbrev ne $protabbrev) { $errorline = 1; @@ -208,7 +209,7 @@ sub checkprotoabbrev { } } - if (lc($abbrev) eq lc($afterabbrev)) { + if (($abbrev ne "") && (lc($abbrev) eq lc($afterabbrev))) { if ($showlinenoFlag) { push(@elements_dup, "$_[1] $_[0] duplicates PROTOABBREV of $abbrev\n"); } else { @@ -326,6 +327,7 @@ while (<>) { } $protabbrev = substr($protabbrev, 0, $protabbrev_index); + $PFNAME_value = ""; $noregprotocol = 1; $automated = 0; $nofields = 0; @@ -388,6 +390,12 @@ while (<>) { $restofline = $_; $more_tokens = 1; + #PFNAME is a popular #define for the proto filter name, so use it for testing + if ($restofline =~ /#define\s*PFNAME\s*\"([^\"]*)\"/) { + $PFNAME_value = $1; + $debug>1 && print "PFNAME: '$1'\n"; + } + until ($more_tokens == 0) { if ($restofline =~ /proto_register_protocol\s*\((.*)/) { $noregprotocol = 0; @@ -408,7 +416,16 @@ while (<>) { } elsif (($state eq "s_proto_long_name") && ($restofline =~ /^(\s*(([\w\d])+)\s*,)\s*(.*)/)) { $restofline = $4; $state = "s_proto_short_name"; - $debug>1 && print "proto short name: '$2'\n"; + $debug>1 && print "proto short name: '$2'\n"; + } elsif (($state eq "s_proto_short_name") && ($restofline =~ /\s*PFNAME\s*(.*)/)) { + $more_tokens = 0; + $state = "s_proto_filter_name"; + if ((index($PFNAME_value, ".") != -1) && ($noperiod == 0)) { + push(@periodinfilternamefilelist, "$currfile\n"); + $noperiod = 1; + } + push(@protocols, $PFNAME_value); + $debug>1 && print "proto filter name: '$PFNAME_value'\n"; } elsif (($state eq "s_proto_short_name") && ($restofline =~ /\s*\"([^\"]*)\"\s*(.*)/)) { $more_tokens = 0; $state = "s_proto_filter_name"; -- cgit v1.2.3