Include rand.h, so RAND_status() and friends get properly declared.
[openssl.git] / util / mkdef.pl
index 3091e2035b802c86da0e99289897269f3784d6c7..4c15a942d2636a3e5c10625958619a70e80c9099 100755 (executable)
@@ -448,6 +448,10 @@ sub do_defs
                        }
 
                        s/\/\*.*?\*\///gs;                   # ignore comments
+                       if (/\/\*/) {                        # if we have part
+                               $line = $_;                  # of a comment,
+                               next;                        # continue reading
+                       }
                        s/{[^{}]*}//gs;                      # ignore {} blocks
                        print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
                        print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
@@ -829,14 +833,14 @@ sub do_defs
                        } elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) {
                                $s = $1;
                                print STDERR "DEBUG: found ANSI C function $s\n" if $debug;
-                       } elsif (/\w+\W+(\w+)\W*\(\s*\)$/s) {
+                       } elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s) {
                                # K&R C
                                print STDERR "DEBUG: found K&R C function $s\n" if $debug;
                                next;
-                       } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)$/s) {
-                               while (not /\(\)$/s) {
-                                       s/[^\(\)]*\)$/\)/s;
-                                       s/\([^\(\)]*\)\)$/\)/s;
+                       } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) {
+                               while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) {
+                                       s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
+                                       s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
                                }
                                s/\(void\)//;
                                /(\w+(\{[0-9]+\})?)\W*\(\)/s;