tolerate spaces when fixing up __cplusplus output by old h2xs
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / xsubpp
index 484b577..1ee7b29 100755 (executable)
@@ -776,7 +776,7 @@ while (<$FH>) {
        /^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/;
 
     if ($OBJ) {
-        s/#if(?:def|\s+defined)\s+(\(__cplusplus\)|__cplusplus)/#if defined(__cplusplus) && !defined(PERL_OBJECT)/;
+        s/#if(?:def\s|\s+defined)\s*(\(__cplusplus\)|__cplusplus)/#if defined(__cplusplus) && !defined(PERL_OBJECT)/;
     }
     print $_;
 }
@@ -1254,30 +1254,37 @@ EOF
 }
 
 # print initialization routine
-if ($WantCAPI) {
+
 print Q<<"EOF";
-#
 ##ifdef __cplusplus
 #extern "C"
 ##endif
+EOF
+
+if ($WantCAPI) {
+print Q<<"EOF";
+##ifdef PERL_CAPI
 #XS(boot__CAPI_entry)
-#[[
-#    dXSARGS;
-#    char* file = __FILE__;
-#
+##else
 EOF
-} else {
+}
+
 print Q<<"EOF";
-##ifdef __cplusplus
-#extern "C"
-##endif
 #XS(boot_$Module_cname)
+EOF
+
+if ($WantCAPI) {
+print Q<<"EOF";
+##endif        /* PERL_CAPI */
+EOF
+}
+
+print Q<<"EOF";
 #[[
 #    dXSARGS;
 #    char* file = __FILE__;
 #
 EOF
-}
 
 print Q<<"EOF" if $WantVersionChk ;
 #    XS_VERSION_BOOTCHECK ;
@@ -1305,15 +1312,14 @@ if (@BootCode)
 }
 
 print Q<<"EOF";;
-#    ST(0) = &sv_yes;
-#    XSRETURN(1);
+#    XSRETURN_YES;
 #]]
 #
 EOF
 
 if ($WantCAPI) { 
 print Q<<"EOF";
-#
+##ifdef PERL_CAPI
 ##define XSCAPI(name) void name(CV* cv, void* pPerl)
 #
 ##ifdef __cplusplus
@@ -1324,7 +1330,7 @@ print Q<<"EOF";
 #    SetCPerlObj(pPerl);
 #    boot__CAPI_entry(cv);
 #]]
-#
+##endif        /* PERL_CAPI */
 EOF
 }