Rework writing crypto/err/openssl.txt
authorRichard Levitte <levitte@openssl.org>
Mon, 12 Jun 2017 22:32:05 +0000 (00:32 +0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 12 Jun 2017 22:32:05 +0000 (00:32 +0200)
Reading the prologue of this file conserved the "# Function codes"
line, and then duplicated it when rewriting this file, adding a new
"# Function codes" line everytime there's an update.

Better then to skip over all comment lines and have the prologue
defined in mkerr.pl, just the same as we do with the other affected
files.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3664)

util/mkerr.pl

index 28e180a9d46980d10667c568c12fd35c5ac550f2..a42794d26af51bcda8c5f38c0ebc26e6255ed524 100755 (executable)
@@ -165,7 +165,6 @@ while ( <IN> ) {
 }
 close IN;
 
-my $statefile_prolog = '';
 if ( ! $statefile ) {
     $statefile = $config;
     $statefile =~ s/.ec/.txt/;
@@ -179,9 +178,7 @@ if ( ! $reindex && $statefile ) {
 
     # Scan function and reason codes and store them: keep a note of the
     # maximum code used.
-    my $collecting = 1;
     while ( <STATE> ) {
-        $statefile_prolog .= $_ if $collecting && ( /^#/ || /^$/ );
         next if /^#/ || /^$/;
         my $name;
         my $code;
@@ -200,7 +197,6 @@ if ( ! $reindex && $statefile ) {
         } else {
             die "Bad line in $statefile:\n$_\n";
         }
-        $collecting = 0;
         my $lib = $name;
         $lib =~ s/_.*//;
         $lib = "SSL" if $lib =~ /TLS/;
@@ -703,8 +699,15 @@ die "Found $errors errors, quitting" if $errors;
 if ( $newstate )  {
     open(OUT, ">$statefile.new")
         || die "Can't write $statefile.new, $!";
-    print OUT $statefile_prolog;
-    print OUT "# Function codes\n";
+    print OUT <<"EOF";
+# Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+EOF
+    print OUT "\n# Function codes\n";
     foreach my $i ( sort keys %fcodes ) {
         my $short = "$i:$fcodes{$i}:";
         my $t = exists $strings{$i} ? $strings{$i} : "";