]> granicus.if.org Git - apache/commitdiff
Be more tolerant.
authorBen Laurie <ben@apache.org>
Mon, 6 May 2002 12:04:56 +0000 (12:04 +0000)
committerBen Laurie <ben@apache.org>
Mon, 6 May 2002 12:04:56 +0000 (12:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94957 13f79535-47bb-0310-9956-ffa450edef68

support/list_hooks.pl

index c52c567142435ced0487d51cdac581f217b51b87..6de9b41d12ec3600af9c438826b4097ef68ee51f 100755 (executable)
@@ -4,20 +4,20 @@ use strict;
 
 use Carp;
 
-my $path=shift;
+my $path=shift || '.';
 
 findInDir($path);
 
 foreach my $hook (sort keys %::Hooks) {
     my $h=$::Hooks{$hook};
     for my $x (qw(declared implemented type args)) {
-       croak "$hook datum '$x' missing" if !exists $h->{$x};
+       print "$hook datum '$x' missing\n" if !exists $h->{$x};
     }
     print "$hook\n";
-    print "  declared in $h->{declared}\n";
-    print "  implemented in $h->{implemented}\n";
-    print "  type is $h->{type}\n";
-    print "  $h->{ret} $hook($h->{args})\n";
+    print "  declared in $h->{declared}\n" if defined $h->{declared};
+    print "  implemented in $h->{implemented}\n" if defined $h->{implemented};
+    print "  type is $h->{type}\n" if defined $h->{type};
+    print "  $h->{ret} $hook($h->{args})\n" if defined $h->{args};
     print "\n";
 }
 
@@ -61,6 +61,15 @@ sub scanFile {
            $::Hooks{$name}->{declared}=$file;
            $::Hooks{$name}->{ret}=$ret;
            $::Hooks{$name}->{args}=$args;
+       } elsif(/AP_DECLARE_HOOK\(([^,]+),([^,]+)/) {
+# really we should swallow subsequent lines to get the arguments...
+           my $name=$2;
+           my $ret=$1;
+           croak "$name declared twice! ($_)"
+               if exists $::Hooks{$name}->{declared};
+           $::Hooks{$name}->{declared}=$file;
+           $::Hooks{$name}->{ret}=$ret;
+           $::Hooks{$name}->{args}='???';
        }
        if(/AP_IMPLEMENT_HOOK_()(VOID)\(([^,\s]+)/
           || /AP_IMPLEMENT(_OPTIONAL|)_HOOK_(.*?)\([^,]+?\s*,\s*([^,\s]+)/) {