ck_errf.pl revision 160814
155714Skris#!/usr/local/bin/perl
255714Skris#
355714Skris# This is just a quick script to scan for cases where the 'error'
455714Skris# function name in a XXXerr() macro is wrong.
555714Skris#
655714Skris# Run in the top level by going
755714Skris# perl util/ck_errf.pl */*.c */*/*.c
855714Skris#
955714Skris
1055714Skrisforeach $file (@ARGV)
1155714Skris	{
1255714Skris	open(IN,"<$file") || die "unable to open $file\n";
1355714Skris	$func="";
1455714Skris	while (<IN>)
1555714Skris		{
16160814Ssimon		if (!/;$/ && /^([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*[),]/)
1755714Skris			{
18160814Ssimon			/^([^()]*(\([^()]*\)[^()]*)*)\(/;
19160814Ssimon			$1 =~ /([A-Za-z_0-9]*)$/;
20160814Ssimon			$func = $1;
2155714Skris			$func =~ tr/A-Z/a-z/;
2255714Skris			}
2355714Skris		if (/([A-Z0-9]+)err\(([^,]+)/)
2455714Skris			{
2555714Skris			$errlib=$1;
2655714Skris			$n=$2;
27160814Ssimon
28160814Ssimon			if ($func eq "")
29160814Ssimon				{ print "$file:$.:???:$n\n"; next; }
30160814Ssimon
3155714Skris			if ($n !~ /([^_]+)_F_(.+)$/)
3255714Skris				{
3355714Skris		#		print "check -$file:$.:$func:$n\n";
3455714Skris				next;
3555714Skris				}
3655714Skris			$lib=$1;
3755714Skris			$n=$2;
3855714Skris
3955714Skris			if ($lib ne $errlib)
40160814Ssimon				{ print "$file:$.:$func:$n [${errlib}err]\n"; next; }
4155714Skris
4255714Skris			$n =~ tr/A-Z/a-z/;
4355714Skris			if (($n ne $func) && ($errlib ne "SYS"))
4455714Skris				{ print "$file:$.:$func:$n\n"; next; }
4555714Skris	#		print "$func:$1\n";
4655714Skris			}
4755714Skris		}
4855714Skris	close(IN);
4955714Skris        }
5055714Skris
51