hdf5/bin/checkapi
Quincey Koziol 893cf5899c [svn-r5466] Purpose:
Code cleanup.

Description:
    Updated perl scripts to be aware of new "FUNC_ENTER_NOINIT" macro.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-28 13:02:38 -05:00

36 lines
902 B
Perl
Executable File

#!/usr/bin/perl -w
require 5.003;
# Purpose: insures that API functions aren't called internally.
# Usage: checkapi H5*.c
my $comment = 0;
while (<>) {
# Remove comments within the line.
s/\/\*.*?\*\///g;
# Process comment begin and end tokens on this line.
$comment-- if /\*\//; # count comment ends
next if $comment; # skip line if in comment
$comment++ if /\/\*/; # count comment starts
s/(.*)\/\*.*/$1/; # remove comments that begin on this line
# Remove character strings
s/\\.//g; # remove escaped characters
s/\".*?\"//g; # remove string constants
# Disregard the following hits
next if /^H5/;
next if /^\#/;
next if /FUNC_ENTER(_NOINIT)*/;
next unless /(H5[A-Z]{1,2}[a-z]\w*)/;
print "$ARGV:$.: $1\n";
} continue {
if (eof) {
print "$ARGV:$.: bad comment nesting\n" if $comment;
$comment = 0;
close ARGV; # reset line number
}
}