summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/php_ini.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/main/php_ini.c b/main/php_ini.c
index b6e8b87dd2..2a413fbaab 100644
--- a/main/php_ini.c
+++ b/main/php_ini.c
@@ -31,6 +31,9 @@
#include "SAPI.h"
#include "php_main.h"
#include "php_scandir.h"
+#ifdef PHP_WIN32
+#include "win32/php_registry.h"
+#endif
#if HAVE_SCANDIR && HAVE_ALPHASORT && HAVE_DIRENT_H
#include <dirent.h>
@@ -297,11 +300,23 @@ int php_init_config()
} else {
char *default_location;
static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };
+ char *reg_location;
- php_ini_search_path = (char *) emalloc(MAXPATHLEN * 3 + strlen(env_location) + 3 + 1);
+ php_ini_search_path = (char *) emalloc(MAXPATHLEN * 4 + strlen(env_location) + 3 + 1);
free_ini_search_path = 1;
php_ini_search_path[0] = 0;
+#ifdef PHP_WIN32
+ /* Add registry location */
+ reg_location = GetIniPathFromRegistry();
+ if(reg_location != NULL) {
+ if (*php_ini_search_path) {
+ strcat(php_ini_search_path, paths_separator);
+ }
+ strcat(php_ini_search_path, reg_location);
+ efree(reg_location);
+ }
+#endif
/*
* Prepare search path
*/