Re: [perl #34493] h2ph `extern inline' problems
[p5sagit/p5-mst-13.2.git] / opcode.pl
index dc5b66e..8305be9 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -7,7 +7,9 @@ BEGIN {
 $opcode_new = 'opcode.h-new';
 $opname_new = 'opnames.h-new';
 open(OC, ">$opcode_new") || die "Can't create $opcode_new: $!\n";
+binmode OC;
 open(ON, ">$opname_new") || die "Can't create $opname_new: $!\n";
+binmode ON;
 select OC;
 
 # Read data.
@@ -39,7 +41,7 @@ print <<"END";
  *    opcode.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2003, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -60,7 +62,7 @@ print ON <<"END";
 /*
  *    opnames.h
  *
- *    Copyright (C) 1999, 2000, 2001, 2002, 2003, by Larry Wall and others
+ *    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -96,9 +98,9 @@ START_EXTERN_C
                     PL_op_desc[(o)->op_type])
 
 #ifndef DOINIT
-EXT char *PL_op_name[];
+EXT const char *PL_op_name[];
 #else
-EXT char *PL_op_name[] = {
+EXT const char *PL_op_name[] = {
 END
 
 for (@ops) {
@@ -113,9 +115,9 @@ END
 
 print <<END;
 #ifndef DOINIT
-EXT char *PL_op_desc[];
+EXT const char *PL_op_desc[];
 #else
-EXT char *PL_op_desc[] = {
+EXT const char *PL_op_desc[] = {
 END
 
 for (@ops) {
@@ -293,7 +295,9 @@ $pp_proto_new = 'pp_proto.h-new';
 $pp_sym_new  = 'pp.sym-new';
 
 open PP, ">$pp_proto_new" or die "Error creating $pp_proto_new: $!";
+binmode PP;
 open PPSYM, ">$pp_sym_new" or die "Error creating $pp_sym_new: $!";
+binmode PPSYM;
 
 print PP <<"END";
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
@@ -493,9 +497,9 @@ regcreset   regexp internal reset   ck_fun          s1      S
 regcomp                regexp compilation      ck_null         s|      S
 match          pattern match (m//)     ck_match        d/
 qr             pattern quote (qr//)    ck_match        s/
-subst          substitution (s///)     ck_null         dis/    S
+subst          substitution (s///)     ck_match        dis/    S
 substcont      substitution iterator   ck_null         dis|    
-trans          transliteration (tr///) ck_null         is"     S
+trans          transliteration (tr///) ck_match        is"     S
 
 # Lvalue operators.
 # sassign is special-cased for op class