Loading util/mkerr.pl +98 −35 Original line number Diff line number Diff line Loading @@ -82,8 +82,9 @@ while (($hdr, $lib) = each %libinc) { next if($hdr eq "NONE"); print STDERR "Scanning header file $hdr\n" if $debug; open(IN, "<$hdr") || die "Can't open Header file $hdr\n"; my $line = "", $def= "", $linenr = 0; my $line = "", $def= "", $linenr = 0, $gotfile = 0; if (open(IN, "<$hdr")) { $gotfile = 1; while(<IN>) { $linenr++; print STDERR "line: $linenr\r" if $debug; Loading @@ -105,17 +106,18 @@ while (($hdr, $lib) = each %libinc) next; } next if (/^#/); # skip preprocessor directives next if (/^\#/); # skip preprocessor directives s/\/\*.*?\*\///gs; # ignore comments s/{[^{}]*}//gs; # ignore {} blocks if (/{|\/\*/) { # Add a } so editor works... if (/\{|\/\*/) { # Add a } so editor works... $line = $_; } else { $def .= $_; } } } print STDERR " \r" if $debug; $defnr = 0; Loading Loading @@ -155,8 +157,9 @@ while (($hdr, $lib) = each %libinc) # Scan function and reason codes and store them: keep a note of the # maximum code used. if ($gotfile) { while(<IN>) { if(/^#define\s+(\S+)\s+(\S+)/) { if(/^\#define\s+(\S+)\s+(\S+)/) { $name = $1; $code = $2; next if $name =~ /^${lib}err/; Loading @@ -178,6 +181,7 @@ while (($hdr, $lib) = each %libinc) } } } } close IN; } Loading Loading @@ -248,15 +252,74 @@ foreach $lib (keys %csrc) # Rewrite the header file open(IN, "<$hfile") || die "Can't Open Header File $hfile\n"; if (open(IN, "<$hfile")) { # Copy across the old file while(<IN>) { push @out, $_; last if (/BEGIN ERROR CODES/); } close IN; } else { push @out, "/* ====================================================================\n", " * Copyright (c) 2001 The OpenSSL Project. All rights reserved.\n", " *\n", " * Redistribution and use in source and binary forms, with or without\n", " * modification, are permitted provided that the following conditions\n", " * are met:\n", " *\n", " * 1. Redistributions of source code must retain the above copyright\n", " * notice, this list of conditions and the following disclaimer. \n", " *\n", " * 2. Redistributions in binary form must reproduce the above copyright\n", " * notice, this list of conditions and the following disclaimer in\n", " * the documentation and/or other materials provided with the\n", " * distribution.\n", " *\n", " * 3. All advertising materials mentioning features or use of this\n", " * software must display the following acknowledgment:\n", " * \"This product includes software developed by the OpenSSL Project\n", " * for use in the OpenSSL Toolkit. (http://www.openssl.org/)\"\n", " *\n", " * 4. The names \"OpenSSL Toolkit\" and \"OpenSSL Project\" must not be used to\n", " * endorse or promote products derived from this software without\n", " * prior written permission. For written permission, please contact\n", " * openssl-core\@openssl.org.\n", " *\n", " * 5. Products derived from this software may not be called \"OpenSSL\"\n", " * nor may \"OpenSSL\" appear in their names without prior written\n", " * permission of the OpenSSL Project.\n", " *\n", " * 6. Redistributions of any form whatsoever must retain the following\n", " * acknowledgment:\n", " * \"This product includes software developed by the OpenSSL Project\n", " * for use in the OpenSSL Toolkit (http://www.openssl.org/)\"\n", " *\n", " * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY\n", " * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n", " * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n", " * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR\n", " * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n", " * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n", " * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n", " * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n", " * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n", " * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n", " * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n", " * OF THE POSSIBILITY OF SUCH DAMAGE.\n", " * ====================================================================\n", " *\n", " * This product includes cryptographic software written by Eric Young\n", " * (eay\@cryptsoft.com). This product includes software written by Tim\n", " * Hudson (tjh\@cryptsoft.com).\n", " *\n", " */\n", "\n", "#ifndef HEADER_${lib}_ERR_H\n", "#define HEADER_${lib}_ERR_H\n", "\n", "/* BEGIN ERROR CODES */\n"; } open (OUT, ">$hfile") || die "Can't Open File $hfile for writing\n"; print OUT @out; Loading Loading
util/mkerr.pl +98 −35 Original line number Diff line number Diff line Loading @@ -82,8 +82,9 @@ while (($hdr, $lib) = each %libinc) { next if($hdr eq "NONE"); print STDERR "Scanning header file $hdr\n" if $debug; open(IN, "<$hdr") || die "Can't open Header file $hdr\n"; my $line = "", $def= "", $linenr = 0; my $line = "", $def= "", $linenr = 0, $gotfile = 0; if (open(IN, "<$hdr")) { $gotfile = 1; while(<IN>) { $linenr++; print STDERR "line: $linenr\r" if $debug; Loading @@ -105,17 +106,18 @@ while (($hdr, $lib) = each %libinc) next; } next if (/^#/); # skip preprocessor directives next if (/^\#/); # skip preprocessor directives s/\/\*.*?\*\///gs; # ignore comments s/{[^{}]*}//gs; # ignore {} blocks if (/{|\/\*/) { # Add a } so editor works... if (/\{|\/\*/) { # Add a } so editor works... $line = $_; } else { $def .= $_; } } } print STDERR " \r" if $debug; $defnr = 0; Loading Loading @@ -155,8 +157,9 @@ while (($hdr, $lib) = each %libinc) # Scan function and reason codes and store them: keep a note of the # maximum code used. if ($gotfile) { while(<IN>) { if(/^#define\s+(\S+)\s+(\S+)/) { if(/^\#define\s+(\S+)\s+(\S+)/) { $name = $1; $code = $2; next if $name =~ /^${lib}err/; Loading @@ -178,6 +181,7 @@ while (($hdr, $lib) = each %libinc) } } } } close IN; } Loading Loading @@ -248,15 +252,74 @@ foreach $lib (keys %csrc) # Rewrite the header file open(IN, "<$hfile") || die "Can't Open Header File $hfile\n"; if (open(IN, "<$hfile")) { # Copy across the old file while(<IN>) { push @out, $_; last if (/BEGIN ERROR CODES/); } close IN; } else { push @out, "/* ====================================================================\n", " * Copyright (c) 2001 The OpenSSL Project. All rights reserved.\n", " *\n", " * Redistribution and use in source and binary forms, with or without\n", " * modification, are permitted provided that the following conditions\n", " * are met:\n", " *\n", " * 1. Redistributions of source code must retain the above copyright\n", " * notice, this list of conditions and the following disclaimer. \n", " *\n", " * 2. Redistributions in binary form must reproduce the above copyright\n", " * notice, this list of conditions and the following disclaimer in\n", " * the documentation and/or other materials provided with the\n", " * distribution.\n", " *\n", " * 3. All advertising materials mentioning features or use of this\n", " * software must display the following acknowledgment:\n", " * \"This product includes software developed by the OpenSSL Project\n", " * for use in the OpenSSL Toolkit. (http://www.openssl.org/)\"\n", " *\n", " * 4. The names \"OpenSSL Toolkit\" and \"OpenSSL Project\" must not be used to\n", " * endorse or promote products derived from this software without\n", " * prior written permission. For written permission, please contact\n", " * openssl-core\@openssl.org.\n", " *\n", " * 5. Products derived from this software may not be called \"OpenSSL\"\n", " * nor may \"OpenSSL\" appear in their names without prior written\n", " * permission of the OpenSSL Project.\n", " *\n", " * 6. Redistributions of any form whatsoever must retain the following\n", " * acknowledgment:\n", " * \"This product includes software developed by the OpenSSL Project\n", " * for use in the OpenSSL Toolkit (http://www.openssl.org/)\"\n", " *\n", " * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY\n", " * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n", " * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n", " * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR\n", " * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n", " * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n", " * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n", " * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n", " * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n", " * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n", " * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n", " * OF THE POSSIBILITY OF SUCH DAMAGE.\n", " * ====================================================================\n", " *\n", " * This product includes cryptographic software written by Eric Young\n", " * (eay\@cryptsoft.com). This product includes software written by Tim\n", " * Hudson (tjh\@cryptsoft.com).\n", " *\n", " */\n", "\n", "#ifndef HEADER_${lib}_ERR_H\n", "#define HEADER_${lib}_ERR_H\n", "\n", "/* BEGIN ERROR CODES */\n"; } open (OUT, ">$hfile") || die "Can't Open File $hfile for writing\n"; print OUT @out; Loading