Move the generation of {START,END}_EXTERN_C from embed.fnc to embed.pl
authorNicholas Clark <nick@ccl4.org>
Mon, 27 Sep 2010 10:00:43 +0000 (11:00 +0100)
committerNicholas Clark <nick@ccl4.org>
Mon, 27 Sep 2010 16:29:06 +0000 (17:29 +0100)
embed.fnc
embed.pl
proto.h

index 9ba33d1..3b51536 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :
 : Individual flags may be separated by whitespace.
 
-START_EXTERN_C
-
 #if defined(PERL_IMPLICIT_SYS)
 Ano    |PerlInterpreter*|perl_alloc_using \
                                |NN struct IPerlMem *ipM \
@@ -2415,7 +2413,6 @@ Aanop     |CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \
                |NN PerlInterpreter *const to
 Anop   |void   |clone_params_del|NN CLONE_PARAMS *param
 #endif
-END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet:
  */
index f0c278b..2f2fde6 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -287,7 +287,19 @@ sub write_protos {
   }
 }
 
-walk_table(\&write_protos,     "proto.h", "/* ex: set ro: */\n");
+{
+    my $pr = safer_open('proto.h-new');
+
+    print $pr do_not_edit ("proto.h"), "\nSTART_EXTERN_C\n";
+
+    walk_table(\&write_protos, $pr);
+
+    print $pr "END_EXTERN_C\n/* ex: set ro: */\n";
+
+    safer_close($pr);
+    rename_if_different('proto.h-new', 'proto.h');
+}
+
 warn "$unflagged_pointers pointer arguments to clean up\n" if $unflagged_pointers;
 walk_table(\&write_global_sym, "global.sym", "# ex: set ro:\n");
 
diff --git a/proto.h b/proto.h
index a2fd1f7..5b207dc 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -7018,8 +7018,8 @@ PERL_CALLCONV void        Perl_clone_params_del(CLONE_PARAMS *param)
        assert(param)
 
 #endif
-END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet:
  */
+END_EXTERN_C
 /* ex: set ro: */