dougm       01/03/04 15:43:36

  Added:       util     apr_arg_check.pl
  Log:
  utility for checking apr_ argument conventions
  
  Revision  Changes    Path
  1.1                  modperl-2.0/util/apr_arg_check.pl
  
  Index: apr_arg_check.pl
  ===================================================================
  use lib qw(lib);
  
  use strict;
  use Apache::FunctionTable ();
  
  #utility for checking apr_ argument conventions
  
  my $tx = '_t\s*\*+';
  
  for my $entry (@$Apache::FunctionTable) {
      my $name = $entry->{name};
      my $args = $entry->{args};
      next unless @$args and $name =~ /^apr_/;
  
      my $has_type_arg = 0;
      for my $arg (@$args) {
          my $type = $arg->{type};
          next unless $type =~ s/$tx$//o;
          $has_type_arg = $name =~ /^\Q$type/;
      }
      next unless $has_type_arg;
  
      my $i = 0;
      for my $arg (@$args) {
          $i++;
          my $type = $arg->{type};
          $type =~ s/$tx//o;
  
          if ($name =~ /^\Q$type/) {
              last if $i == 1;
          }
          else {
              next;
          }
          if ($i > 1) {
              print "'$arg->{name}' should be the first arg:\n";
                  print "   $entry->{return_type}\n   $name(",
                    (join ', ', map "$_->{type} $_->{name}", @$args),
                      ")\n\n";
          }
      }
  }
  
  
  

Reply via email to