Fix a small bug in str_copy: if more than one variable is replaced, make
[openssl.git] / util / mkdef.pl
index dc5b12b904e6667d5861aa72b1b36e876b9165b3..64e0430a19c15c5594a809e602314fc09ea69554 100755 (executable)
@@ -273,6 +273,7 @@ $crypto.=" crypto/ocsp/ocsp.h";
 $crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
 $crypto.=" crypto/krb5/krb5_asn.h";
 $crypto.=" crypto/tmdiff.h";
+$crypto.=" crypto/store/store.h";
 
 my $symhacks="crypto/symhacks.h";
 
@@ -833,14 +834,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;