]> granicus.if.org Git - apache/blobdiff - support/list_hooks.pl
Add CHANGES' security entries for 2.4.27.
[apache] / support / list_hooks.pl
index 6de9b41d12ec3600af9c438826b4097ef68ee51f..7a6c9332c39df9e999187e7cd1357d96ddc5581c 100755 (executable)
@@ -1,4 +1,19 @@
 #!/usr/bin/perl -w
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
 use strict;
 
@@ -44,16 +59,25 @@ sub findInDir {
 sub scanFile {
     my $file=shift;
 
-#    print "scanning $file\n";
+#   print "scanning $file\n";
 
     open(F,$file) || croak "Can't open $file: $!";
     while(<F>) {
        next if /\#define/;
        next if /\@deffunc/;
-       if(/AP_DECLARE_HOOK\((.*)\)/) {
-           my $def=$1;
-           my($ret,$name,$args)=$def=~/([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*\((.*)\)/;
-           croak "Don't understand $def in $file" if !defined $args;
+       if(/AP_DECLARE_HOOK\s*\(/) {
+           my($ret,$name,$args);
+           while(!(($ret,$name,$args)=
+                  /AP_DECLARE_HOOK\s*\(\s*([^,]+)\s*,\s*([^,\s]+)\s*,\s*\((.*?)\)\)/s)) {
+               chomp;
+               # swallow subsequent lines if needed to get all the required info
+               my $l=<F>;
+               return unless defined $l;
+               $l=~s/^\s*/ /;
+               $_.=$l;
+           }
+           $ret=~s/\s*$//;
+           $args=~s/^\s*//; $args=~s/\s*$//;
 #          print "found $ret $name($args) in $file\n";
 
            croak "$name declared twice! ($_)"
@@ -61,15 +85,6 @@ 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]+)/) {