perl 5.003_01: lib/File/Basename.pm
[p5sagit/p5-mst-13.2.git] / embed.pl
old mode 100644 (file)
new mode 100755 (executable)
index 118b911..e4469c9
--- a/embed.pl
+++ b/embed.pl
@@ -3,10 +3,23 @@
 open(EM, ">embed.h") || die "Can't create embed.h: $!\n";
 
 print EM <<'END';
-/* This file is derived from global.sym and interp.sym */
+/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+   This file is derived from global.sym and interp.sym 
+   Any changes made here will be lost 
+*/
 
 /* (Doing namespace management portably in C is really gross.) */
 
+/*  EMBED has no run-time penalty, but helps keep the Perl namespace
+    from colliding with that used by other libraries pulled in
+    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
+    override, however, to keep binary compatability with previous
+    versions of perl.
+*/
+#ifndef NO_EMBED
+#  define EMBED 1 
+#endif
+
 #ifdef EMBED
 
 /* globals we need to hide from the world */
@@ -32,6 +45,14 @@ print EM <<'END';
 
 #ifdef MULTIPLICITY
 
+/* Undefine symbols that were defined by EMBED. Somewhat ugly */
+
+#undef curcop
+#undef envgv
+#undef siggv
+#undef stack
+#undef tainting
+
 END
 
 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";