use Config;
use File::Basename;
use File::Spec;
+use Symbol;
require Exporter;
my($XSS_work_idx, $cpp_next_tmp);
use vars qw($VERSION);
-$VERSION = '2.10';
+$VERSION = '2.15';
use vars qw(%input_expr %output_expr $ProtoUsed @InitFileCode $FH $proto_re $Overload $errors $Fallback
$cplusplus $hiertype $WantPrototypes $WantVersionChk $except $WantLineNumbers
@XSStack = ({type => 'none'});
($XSS_work_idx, $cpp_next_tmp) = (0, "XSubPPtmpAAAA");
@InitFileCode = ();
- $FH = 'File0000' ;
+ $FH = Symbol::gensym();
$proto_re = "[" . quotemeta('\$%&*@;[]') . "]" ;
$Overload = 0;
$errors = 0;
$input_expr{$key} =~ s/;*\s+\z//;
}
- my ($bal, $cast, $size);
- $bal = qr[(?:(?>[^()]+)|\((??{ $bal })\))*]; # ()-balanced
+ my ($cast, $size);
+ our $bal = qr[(?:(?>[^()]+)|\((??{ $bal })\))*]; # ()-balanced
$cast = qr[(?:\(\s*SV\s*\*\s*\)\s*)?]; # Optional (SV*) cast
$size = qr[,\s* (??{ $bal }) ]x; # Third arg (to setpvn)
)) . "|$END)\\s*:";
- my ($C_group_rex, $C_arg);
+ our ($C_group_rex, $C_arg);
# Group in C (no support for comments or literals)
$C_group_rex = qr/ [({\[]
(?: (?> [^()\[\]{}]+ ) | (??{ $C_group_rex }) )*
chdir($orig_cwd);
select($orig_fh);
untie *PSEUDO_STDOUT if tied *PSEUDO_STDOUT;
+ close $FH;
return 1;
}
Handle => $FH,
}) ;
- ++ $FH ;
+ $FH = Symbol::gensym();
# open the new file
open ($FH, "$_") or death("Cannot open '$_': $!") ;