From c226e4acff8b0f06520ee61803bc9b8972a15cbd Mon Sep 17 00:00:00 2001
From: Christian Schneider
Date: Mon, 24 Mar 2008 15:54:31 +0000
Subject: Execute converted main script in global context to support global
 variables

---
 it_auto_prepend.php | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/it_auto_prepend.php b/it_auto_prepend.php
index ace84b1..45ad41d 100644
--- a/it_auto_prepend.php
+++ b/it_auto_prepend.php
@@ -22,10 +22,15 @@
 unset($GLOBALS['IT_SYNTAXCONVERTER_DIR']);	# Security measure for register_globals on
 
 #$debug_itclassloader = true;
-it_initialize();
+if ($it_convertedmainfile = it_initialize())
+{
+	require($it_convertedmainfile);
+	exit;
+}
 
 function it_initialize()
 {
+	$result = false;
 	static $it_initrecursion;
 
 	if (!$it_initrecursion++)
@@ -106,18 +111,17 @@ function it_initialize()
 
 		if ($needsconvert)
 		{
-			# Convert syntax and start
-			$converted = it_convert(it_untaint($_SERVER['SCRIPT_FILENAME'], TC_SELF));
+			# Convert syntax (we will return name of converted script to global context to start it there)
+			$result = it_convert(it_untaint($_SERVER['SCRIPT_FILENAME'], TC_SELF));
 
 			/* XXX Disabled as DB not always there
 			if (!$autoloader)	# PHP 4 fallback
 				it_dbi::createclasses();
 			*/
-
-			require($converted);
-			exit;
 		}
 	}
+
+	return $result;
 }
 
 function it_convert($source)
-- 
cgit v1.2.3