File: checkapi

package info (click to toggle)
hdf5 1.14.6%2Brepack-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 210,720 kB
  • sloc: ansic: 715,827; f90: 42,941; java: 38,101; sh: 23,766; xml: 18,707; cpp: 18,011; makefile: 2,426; perl: 2,383; yacc: 332; python: 262; javascript: 203; lex: 157; ruby: 24; csh: 22
file content (66 lines) | stat: -rwxr-xr-x 1,852 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env perl
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
require 5.003;

use warnings;

# Purpose: insures that API functions aren't called internally.
# Usage:   checkapi H5*.c
my $filename = "";
my $lastname = "";

if(<>) {
    while (<>) {
        if($ARGV =~ /\//) {
            ($filename) = ($ARGV =~ /^.*\/([A-Za-z0-9_]*)\.c$/);
        } else {
            ($filename) = ($ARGV =~ /([A-Za-z0-9_]*)\.c$/);
        }

        if($filename =~ /H5FDmulti|H5FDstdio/) {
            if($filename ne $lastname) {
                print "$ARGV is exempt from checking\n";
                $lastname = $filename;
            }
        } else {
           # Get rid of comments by removing the inside part.
           s|/\*.*?\*/||g;
           if ($in_comment) {
              if (/\*\//) {
                 s|.*?\*/||;
                 $in_comment = 0;
              } else {
                 $_="\n";
              }
           } elsif (m|/\*|) {
              s|/\*.*||;
              $in_comment = 1;
           }

          # 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 {
       close ARGV if eof;       # reset line number
    }
}