Make sure latest Perl versions don't interpret some generated C array as Perl
[openssl.git] / crypto / err / err_genc.pl
index d3251da8428939836623a6318b49ce51f6e04cdb..21f1b9bd9d1ad21255b5e82c24a1866b9a772743 100644 (file)
@@ -55,7 +55,7 @@ close(IN);
 
 foreach (sort keys %out)
        {
-       print "static ERR_STRING_DATA ${_}[]=\n\t{\n";
+       print "static ERR_STRING_DATA ${_}\[\]=\n\t{\n";
        print $out{$_};
        print "{0,NULL},\n";
        print "\t};\n\n";
@@ -65,7 +65,23 @@ print "#endif\n";
 if ($static)
        { $lib="ERR_LIB_$type"; }
 else
-       { $lib="${type}_lib_error_code"; }
+       { 
+       print <<"EOF";
+
+#ifdef ${type}_LIB_NAME
+static ERR_STRING_DATA ${type}_lib_name[]=
+        {
+{0     ,${type}_LIB_NAME},
+{0,NULL}
+       };
+#endif
+
+EOF
+       $lib="${type}_lib_error_code"; 
+
+
+
+       }
 
 $str="";
 $str.="#ifndef NO_ERR\n";
@@ -77,7 +93,7 @@ if (!$static)
        {
 print <<"EOF";
 
-static int ${type}_lib_error_code=0;
+int ${type}_lib_error_code=0;
 
 void ERR_load_${type}_strings()
        {
@@ -86,10 +102,14 @@ void ERR_load_${type}_strings()
        if (${type}_lib_error_code == 0)
                ${type}_lib_error_code=ERR_get_next_error_library();
 
-       if (init);
-               {;
+       if (init)
+               {
                init=0;
 $str
+#ifdef ${type}_LIB_NAME
+               ${type}_lib_name->error = ERR_PACK(${type}_lib_error_code,0,0);
+               ERR_load_strings(0,${type}_lib_name);
+#endif;
                }
        }
 
@@ -113,8 +133,8 @@ void ERR_load_${type}_strings()
        {
        static int init=1;
 
-       if (init);
-               {;
+       if (init)
+               {
                init=0;
 $str
                }