Here is a patch which adds preliminary pre-processor support to xsubpp. There's a few caveats. #line will now be incorrect, since the #includes now occur BEFORE xsubpp gets to them (I wonder if there's a way to disable those directives). As soon as I get better testing done, I'll send this in to whoever is supposed to see it. To invoke, use xsubpp -preprocess blah
*** xsubpp.old Fri Aug 8 13:18:20 2003
--- xsubpp Fri Aug 8 13:13:23 2003
***************
*** 164,169 ****
--- 164,170 ----
$process_inout = 1, next SWITCH if $flag eq 'inout';
$process_argtypes = 0, next SWITCH if $flag eq 'noargtype
+s';
$process_argtypes = 1, next SWITCH if $flag eq 'argtypes'
+;
+ $preprocess = 1, next SWITCH if $flag eq 'preprocess';
(print "xsubpp version $XSUBPP_version\n"), exit
if $flag eq 'v';
die $usage;
***************
*** 883,889 ****
$text;
}
! open($FH, $filename) or die "cannot open $filename: $!\n";
# Identify the version of xsubpp used
print <<EOM ;
--- 884,895 ----
$text;
}
! if ( $preprocess ) {
! open($FH, "$Config{cpp} $filename |")
! or die "cannot open $Config{cpp} $filename: $!\n";
! } else {
! open($FH, $filename) or die "cannot open $filename: $!\n";
! }
|