cvs: php4 /scripts/ext_skel_ng extension_parser.php
| From: | Hartmut Holzgraefe | Date: | Wed, 23 Apr 2003 16:38:22 +0000 |
| Subject: | cvs: php4 /scripts/ext_skel_ng extension_parser.php | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-20452@lists.php.net to get a copy of this message | ||
hholzgra Wed Apr 23 12:38:22 2003 EDT
Modified files:
/php4/scripts/ext_skel_ng extension_parser.php
Log:
reorganized code generation
- source file includes generated header only,
generated header includes anything else
and is able to prepend include statements
to files that need to be included *before*
any php delivered header files
- 'private' functions are now moved up in the
generated source file so we do not add extra
C protos for them before use
Index: php4/scripts/ext_skel_ng/extension_parser.php
diff -u php4/scripts/ext_skel_ng/extension_parser.php:1.16
php4/scripts/ext_skel_ng/extension_parser.php:1.17
--- php4/scripts/ext_skel_ng/extension_parser.php:1.16 Wed Apr 23 12:34:30 2003
+++ php4/scripts/ext_skel_ng/extension_parser.php Wed Apr 23 12:38:22 2003
@@ -588,6 +588,40 @@
fputs($fp, "#ifndef PHP_HAVE_{$upname}\n\n");
+ if(isset($this->headers)) {
+ foreach($this->headers as $header) {
+ if (@$header["prepend"] === "yes") {
+ fputs($fp, "#include <$header[name]>\n");
+ }
+ }
+ }
+
+ fputs($fp, '
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <php.h>
+#include <php_ini.h>
+#include <SAPI.h>
+#include <ext/standard/info.h>
+
+');
+
+ if(isset($this->headers)) {
+ foreach($this->headers as $header) {
+ if (@$header["prepend"] !== "yes") {
+ fputs($fp, "#include <$header[name]>\n");
+ }
+ }
+ }
+
+ if(isset($this->code["header"])) {
+ foreach($this->code["header"] as $code) {
+ fputs($fp, $code);
+ }
+ }
+
fputs($fp, "
extern zend_module_entry {$this->name}_module_entry;
#define phpext_{$this->name}_ptr &{$this->name}_module_entry
@@ -825,7 +859,7 @@
$code = "";
foreach($this->functions as $function) {
- $code .= $function->c_code();
+ $code .= $function->c_code(&$this);
}
return $code;
@@ -846,17 +880,6 @@
fputs($fp, $this->get_license());
- fputs($fp, '
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <php.h>
-#include <php_ini.h>
-#include <SAPI.h>
-#include <ext/standard/info.h>
-
-');
fputs($fp, "#include \"php_{$this->name}.h\"\n\n");
if (isset($this->logo)) {
@@ -867,6 +890,8 @@
fputs($fp, "ZEND_DECLARE_MODULE_GLOBALS({$this->name})\n\n");
}
+ fputs($fp, $this->private_functions_c());
+
if (!empty($this->resources)) {
foreach ($this->resources as $resource) {
fputs($fp, $resource->c_code());
@@ -888,8 +913,6 @@
fputs($fp, "/* }}} */\n\n");
fputs($fp, $this->internal_functions_c());
-
- fputs($fp, $this->private_functions_c());
fputs($fp, $this->public_functions_c());