You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							66 lines
						
					
					
						
							1.8 KiB
						
					
					
				| #!/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
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 |