Deprecating chdir(undef)/chdir('')
[p5sagit/p5-mst-13.2.git] / opcode.pl
index 2f4a7fd..28630a5 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -65,6 +65,12 @@ print <<END;
 
 START_EXTERN_C
 
+
+#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[];
 #else
@@ -130,7 +136,7 @@ EXT OP * (CPERLscope(*PL_ppaddr)[])(pTHX) = {
 END
 
 for (@ops) {
-    print "\tMEMBER_TO_FPTR(Perl_pp_$_),\n";
+    print "\tMEMBER_TO_FPTR(Perl_pp_$_),\n" unless $_ eq "custom";
 }
 
 print <<END;
@@ -209,7 +215,6 @@ for (@ops) {
     $argsum |= 32 if $flags =~ /I/;            # has corresponding int op
     $argsum |= 64 if $flags =~ /d/;            # danger, unknown side effects
     $argsum |= 128 if $flags =~ /u/;           # defaults to $_
-
     $flags =~ /([\W\d_])/ or die qq[Opcode "$_" has no class indicator];
     $argsum |= $opclass{$1} << 9;
     $mul = 0x2000;                             # 2 ^ OASHIFT
@@ -291,6 +296,7 @@ print PP "\n\n";
 
 for (@ops) {
     next if /^i_(pre|post)(inc|dec)$/;
+    next if /^custom$/;
     print PP "PERL_PPDEF(Perl_pp_$_)\n";
     print PPSYM "Perl_pp_$_\n";
 }
@@ -444,8 +450,8 @@ bless               bless                   ck_fun          s@      S S?
 backtick       quoted execution (``, qx)       ck_open         t%      
 # glob defaults its first arg to $_
 glob           glob                    ck_glob         t@      S?
-readline       <HANDLE>                ck_null         t%      
-rcatline       append I/O operator     ck_null         t%      
+readline       <HANDLE>                ck_null         t%      F?
+rcatline       append I/O operator     ck_null         t$
 
 # Bindable operators.
 
@@ -887,3 +893,5 @@ threadsv    per-thread value        ck_null         ds0
 # Control (contd.)
 setstate       set statement info      ck_null         s;
 method_named   method with known name  ck_null         d$
+
+custom         unknown custom operator         ck_null         0