1ebfedea0SLionel Sambuc#!/usr/local/bin/perl 2ebfedea0SLionel Sambuc# 3ebfedea0SLionel Sambuc# This is just a quick script to scan for cases where the 'error' 4ebfedea0SLionel Sambuc# function name in a XXXerr() macro is wrong. 5ebfedea0SLionel Sambuc# 6ebfedea0SLionel Sambuc# Run in the top level by going 7ebfedea0SLionel Sambuc# perl util/ck_errf.pl */*.c */*/*.c 8ebfedea0SLionel Sambuc# 9ebfedea0SLionel Sambuc 10ebfedea0SLionel Sambucmy $err_strict = 0; 11ebfedea0SLionel Sambucmy $bad = 0; 12ebfedea0SLionel Sambuc 13ebfedea0SLionel Sambucforeach $file (@ARGV) 14ebfedea0SLionel Sambuc { 15ebfedea0SLionel Sambuc if ($file eq "-strict") 16ebfedea0SLionel Sambuc { 17ebfedea0SLionel Sambuc $err_strict = 1; 18ebfedea0SLionel Sambuc next; 19ebfedea0SLionel Sambuc } 20ebfedea0SLionel Sambuc open(IN,"<$file") || die "unable to open $file\n"; 21ebfedea0SLionel Sambuc $func=""; 22ebfedea0SLionel Sambuc while (<IN>) 23ebfedea0SLionel Sambuc { 24*0a6a1f1dSLionel Sambuc if (!/;$/ && /^\**([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/) 25ebfedea0SLionel Sambuc { 26ebfedea0SLionel Sambuc /^([^()]*(\([^()]*\)[^()]*)*)\(/; 27ebfedea0SLionel Sambuc $1 =~ /([A-Za-z_0-9]*)$/; 28ebfedea0SLionel Sambuc $func = $1; 29ebfedea0SLionel Sambuc $func =~ tr/A-Z/a-z/; 30ebfedea0SLionel Sambuc } 31ebfedea0SLionel Sambuc if (/([A-Z0-9]+)err\(([^,]+)/ && ! /ckerr_ignore/) 32ebfedea0SLionel Sambuc { 33ebfedea0SLionel Sambuc $errlib=$1; 34ebfedea0SLionel Sambuc $n=$2; 35ebfedea0SLionel Sambuc 36ebfedea0SLionel Sambuc if ($func eq "") 37ebfedea0SLionel Sambuc { print "$file:$.:???:$n\n"; $bad = 1; next; } 38ebfedea0SLionel Sambuc 39ebfedea0SLionel Sambuc if ($n !~ /([^_]+)_F_(.+)$/) 40ebfedea0SLionel Sambuc { 41ebfedea0SLionel Sambuc # print "check -$file:$.:$func:$n\n"; 42ebfedea0SLionel Sambuc next; 43ebfedea0SLionel Sambuc } 44ebfedea0SLionel Sambuc $lib=$1; 45ebfedea0SLionel Sambuc $n=$2; 46ebfedea0SLionel Sambuc 47ebfedea0SLionel Sambuc if ($lib ne $errlib) 48ebfedea0SLionel Sambuc { print "$file:$.:$func:$n [${errlib}err]\n"; $bad = 1; next; } 49ebfedea0SLionel Sambuc 50ebfedea0SLionel Sambuc $n =~ tr/A-Z/a-z/; 51ebfedea0SLionel Sambuc if (($n ne $func) && ($errlib ne "SYS")) 52ebfedea0SLionel Sambuc { print "$file:$.:$func:$n\n"; $bad = 1; next; } 53ebfedea0SLionel Sambuc # print "$func:$1\n"; 54ebfedea0SLionel Sambuc } 55ebfedea0SLionel Sambuc } 56ebfedea0SLionel Sambuc close(IN); 57ebfedea0SLionel Sambuc } 58ebfedea0SLionel Sambuc 59ebfedea0SLionel Sambucif ($bad && $err_strict) 60ebfedea0SLionel Sambuc { 61ebfedea0SLionel Sambuc print STDERR "FATAL: error discrepancy\n"; 62ebfedea0SLionel Sambuc exit 1; 63ebfedea0SLionel Sambuc } 64ebfedea0SLionel Sambuc 65