php5 下不光 phpbbslib.c 有问题,php 内的 xml 函数也有问题,所以不清楚
是否有必要仅仅改 phpbbslib.c 部分。xml 函数有一个快速但猥琐的改法可以参考
http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
不过如果不管 xml 函数的问题要让 smthbbs 1.2 系列在 php5 环境下编译,
可以参考主分支这个修改:
===================================================================
RCS file: /home/cvs/smth_bbs/bbs2www/phplib/phpbbslib.c,v
retrieving revision 1.362
retrieving revision 1.378
diff -u -r1.362 -r1.378
--- smth_bbs/bbs2www/phplib/phpbbslib.c,v 13 Jun 2004 13:44:07 -0000 1.362
+++ smth_bbs/bbs2www/phplib/phpbbslib.c,v 16 Jul 2004 01:22:41 -0000 1.378
@@ -21,6 +21,58 @@
#include "bbslib.h"
#include "vote.h"
+#if PHP_MAJOR_VERSION == 5
+static
+ ZEND_BEGIN_ARG_INFO(one_arg_force_ref_1, 0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(two_arg_force_ref_01, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(third_arg_force_ref_1111, 0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(third_arg_force_ref_011, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref_0001, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref_0111, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(third_arg_force_ref_001, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+static
+ ZEND_BEGIN_ARG_INFO(fifth_arg_force_ref_00011, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_ARG_PASS_INFO(1)
+ ZEND_END_ARG_INFO();
+#else //if PHP_MAJOR_VERSION == 4
static unsigned char one_arg_force_ref_1[] = { 1, BYREF_FORCE };
static unsigned char two_arg_force_ref_01[] = { 2, BYREF_NONE, BYREF_FORCE };
static unsigned char third_arg_force_ref_1111[] = { 4, BYREF_FORCE, BYREF_FORCE, BYREF_FORCE, BYREF_FORCE };
@@ -29,8 +81,9 @@
static unsigned char fourth_arg_force_ref_0111[] = { 4, BYREF_NONE, BYREF_FORCE, BYREF_FORCE, BYREF_FORCE };
static unsigned char third_arg_force_ref_001[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
static unsigned char fifth_arg_force_ref_00011[] = { 5, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE , BYREF_FORCE};
+#endif
--
FROM 128.12.181.30