summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStig Bakken <ssb@php.net>2002-11-05 06:05:48 +0000
committerStig Bakken <ssb@php.net>2002-11-05 06:05:48 +0000
commitefeaa5917ccba60850a21322846c8f72bc619c71 (patch)
tree6ea51173e90c5b6f092c19d5f827e6c8ae597c27
parentecb5c7e08edea0a1cc17d4c6477f77819e3b6842 (diff)
downloadphp-git-efeaa5917ccba60850a21322846c8f72bc619c71.tar.gz
Added separate functions for setting include_path, for environments
where ini_set has been disabled. New functions: get_include_path(), set_include_path(), restore_include_path()
-rw-r--r--ext/standard/basic_functions.c65
-rw-r--r--ext/standard/basic_functions.h3
2 files changed, 68 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 00adfc2a10..0208167550 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -555,6 +555,9 @@ function_entry basic_functions[] = {
PHP_FE(ini_set, NULL)
PHP_FALIAS(ini_alter, ini_set, NULL)
PHP_FE(ini_restore, NULL)
+ PHP_FE(get_include_path, NULL)
+ PHP_FE(set_include_path, NULL)
+ PHP_FE(restore_include_path, NULL)
PHP_FE(setcookie, NULL)
PHP_FE(header, NULL)
@@ -2383,6 +2386,68 @@ PHP_FUNCTION(ini_restore)
}
/* }}} */
+/* {{{ proto string set_include_path(string varname, string newvalue)
+ Sets the include_path configuration option */
+
+PHP_FUNCTION(set_include_path)
+{
+ pval **new_value;
+ char *old_value;
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &new_value) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+ convert_to_string_ex(new_value);
+ old_value = zend_ini_string("include_path", sizeof("include_path"), 0);
+ /* copy to return here, because alter might free it! */
+ if (old_value) {
+ RETVAL_STRING(old_value, 1);
+ } else {
+ RETVAL_FALSE;
+ }
+ if (zend_alter_ini_entry("include_path", sizeof("include_path"),
+ Z_STRVAL_PP(new_value), Z_STRLEN_PP(new_value),
+ PHP_INI_USER, PHP_INI_STAGE_RUNTIME) == FAILURE) {
+ zval_dtor(return_value);
+ RETURN_FALSE;
+ }
+}
+
+/* }}} */
+
+/* {{{ proto string get_include_path()
+ Get the current include_path configuration option */
+
+PHP_FUNCTION(get_include_path)
+{
+ char *str;
+ if (ZEND_NUM_ARGS() != 0) {
+ WRONG_PARAM_COUNT;
+ }
+ str = zend_ini_string("include_path", sizeof("include_path"), 0);
+ if (str == NULL) {
+ RETURN_FALSE;
+ }
+ RETURN_STRING(str, 1);
+}
+
+/* }}} */
+
+/* {{{ proto string restore_include_path()
+ Restore the value of the include_path configuration option */
+
+PHP_FUNCTION(restore_include_path)
+{
+ if (ZEND_NUM_ARGS() != 0) {
+ WRONG_PARAM_COUNT;
+ }
+
+ zend_restore_ini_entry("include_path", sizeof("include_path"),
+ PHP_INI_STAGE_RUNTIME);
+}
+
+/* }}} */
+
/* {{{ proto bool print_r(mixed var [, bool return])
Prints out or returns information about the specified variable */
PHP_FUNCTION(print_r)
diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h
index 83cc764fd6..c1e3feacf1 100644
--- a/ext/standard/basic_functions.h
+++ b/ext/standard/basic_functions.h
@@ -78,6 +78,9 @@ PHP_FUNCTION(ini_get);
PHP_FUNCTION(ini_get_all);
PHP_FUNCTION(ini_set);
PHP_FUNCTION(ini_restore);
+PHP_FUNCTION(get_include_path);
+PHP_FUNCTION(set_include_path);
+PHP_FUNCTION(restore_include_path);
PHP_FUNCTION(print_r);