X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.pl;h=9e8d323f9166fbdde3eb60890e9b5bf65d478735;hb=5c144d81801caa5e8317f6a38b40eb08257c47ea;hp=c44ff3f51d078e080efa208b61c019585ef705a6;hpb=24600adc4a7b8d0320458f5125c21c1645dc6bd4;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.pl b/opcode.pl index c44ff3f..9e8d323 100755 --- 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. @@ -35,10 +37,12 @@ while () { $i = 0; print <<"END"; -/* +/* -*- buffer-read-only: t -*- + * * opcode.h * - * Copyright (c) 1997-2003, Larry Wall + * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, + * 2000, 2001, 2002, 2003, 2004, 2005 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. @@ -48,6 +52,8 @@ print <<"END"; * will be lost! */ +#ifndef PERL_GLOBAL_STRUCT_INIT + #define Perl_pp_i_preinc Perl_pp_preinc #define Perl_pp_i_predec Perl_pp_predec #define Perl_pp_i_postinc Perl_pp_postinc @@ -56,10 +62,11 @@ print <<"END"; END print ON <<"END"; -/* +/* -*- buffer-read-only: t -*- + * * opnames.h * - * Copyright (c) 1997-2003, Larry Wall + * 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. @@ -85,19 +92,17 @@ print ON "#define OP_phoney_OUTPUT_ONLY -2\n\n"; # Emit op names and descriptions. print <op_type == OP_CUSTOM ? custom_op_name(o) : \\ - PL_op_name[o->op_type]) -#define OP_DESC(o) (o->op_type == OP_CUSTOM ? custom_op_desc(o) : \\ - PL_op_desc[o->op_type]) +#define OP_NAME(o) ((o)->op_type == OP_CUSTOM ? custom_op_name(o) : \\ + PL_op_name[(o)->op_type]) +#define OP_DESC(o) ((o)->op_type == OP_CUSTOM ? custom_op_desc(o) : \\ + PL_op_desc[(o)->op_type]) #ifndef DOINIT -EXT char *PL_op_name[]; +EXTCONST char* const PL_op_name[]; #else -EXT char *PL_op_name[] = { +EXTCONST char* const PL_op_name[] = { END for (@ops) { @@ -112,9 +117,9 @@ END print <$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 !!!!!!! +/* -*- buffer-read-only: t -*- + !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by opcode.pl from its data. Any changes made here will be lost! */ @@ -303,6 +331,7 @@ print PP <<"END"; END print PPSYM <<"END"; +# -*- buffer-read-only: t -*- # # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! # This file is built by opcode.pl from its data. Any changes made here @@ -326,6 +355,8 @@ for (@ops) { print PP "PERL_PPDEF(Perl_pp_$_)\n"; print PPSYM "Perl_pp_$_\n"; } +print PP "\n/* ex: set ro: */\n"; +print PPSYM "\n# ex: set ro:\n"; close PP or die "Error closing pp_proto.h: $!"; close PPSYM or die "Error closing pp.sym: $!"; @@ -492,9 +523,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 @@ -632,7 +663,7 @@ hslice hash slice ck_null m@ H L # Explosives and implosives. -unpack unpack ck_fun @ S S? +unpack unpack ck_unpack @ S S? pack pack ck_fun mst@ S L split split ck_split t@ S S S join join or string ck_join mst@ S L @@ -646,8 +677,8 @@ anonhash anonymous hash ({}) ck_fun ms@ L splice splice ck_fun m@ A S? S? L push push ck_fun imsT@ A L -pop pop ck_shift s% A -shift shift ck_shift s% A +pop pop ck_shift s% A? +shift shift ck_shift s% A? unshift unshift ck_fun imsT@ A L sort sort ck_sort m@ C? L reverse reverse ck_fun mt@ L @@ -811,7 +842,7 @@ rename rename ck_fun isT@ S S link link ck_fun isT@ S S symlink symlink ck_fun isT@ S S readlink readlink ck_fun stu% S? -mkdir mkdir ck_fun isT@ S S? +mkdir mkdir ck_fun isTu@ S? S? rmdir rmdir ck_fun isTu% S? # Directory calls.