diff options
author | Preston L. Bannister <pbannister@php.net> | 2002-08-12 05:37:03 +0000 |
---|---|---|
committer | Preston L. Bannister <pbannister@php.net> | 2002-08-12 05:37:03 +0000 |
commit | e1658ed6c4e3567cbc72482e08b7800a94ecd8a7 (patch) | |
tree | b4286b1f30711bf2740c3bdde940c673fc3165b2 /main/php_ini.c | |
parent | bd726f9172bd70028590749c20180e9ab52ba527 (diff) | |
download | php-git-e1658ed6c4e3567cbc72482e08b7800a94ecd8a7.tar.gz |
Minor cleanups to path building and php*.ini search logic.
Made path_seperator string static (which solves the lookup problems Sebastian saw).
Diffstat (limited to 'main/php_ini.c')
-rw-r--r-- | main/php_ini.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/main/php_ini.c b/main/php_ini.c index 67e1defb85..715f30e596 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -231,7 +231,7 @@ int php_init_config() free_ini_search_path = 0; } else { char *default_location; - char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 }; + static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 }; php_ini_search_path = (char *) emalloc(MAXPATHLEN*3+strlen(env_location)+3+1); free_ini_search_path = 1; @@ -244,8 +244,10 @@ int php_init_config() /* Add cwd */ #ifdef INI_CHECK_CWD if (strcmp(sapi_module.name, "cli")!=0) { + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } strcat(php_ini_search_path, "."); - strcat(php_ini_search_path, paths_separator); } #endif @@ -269,28 +271,37 @@ int php_init_config() if (separator_location) { *(separator_location+1) = 0; } + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } strcat(php_ini_search_path, binary_location); - strcat(php_ini_search_path, paths_separator); efree(binary_location); } /* Add environment location */ if (env_location[0]) { + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } strcat(php_ini_search_path, env_location); - strcat(php_ini_search_path, paths_separator); } /* Add default location */ #ifdef PHP_WIN32 default_location = (char *) emalloc(MAXPATHLEN+1); - if (!GetWindowsDirectory(default_location, MAXPATHLEN)) { - default_location[0]=0; + if (0 < GetWindowsDirectory(default_location, MAXPATHLEN)) { + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } + strcat(php_ini_search_path, default_location); } - strcat(php_ini_search_path, default_location); efree(default_location); #else default_location = PHP_CONFIG_FILE_PATH; + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } strcat(php_ini_search_path, default_location); #endif } @@ -310,15 +321,23 @@ int php_init_config() } } } + /* Search php-%sapi-module-name%.ini file in search path */ + if (!fh.handle.fp) { + const char *fmt = "php-%s.ini"; + char *ini_fname=emalloc(strlen(fmt)+strlen(sapi_module.name)); + sprintf(ini_fname, fmt, sapi_module.name); + fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); + efree(ini_fname); + if (fh.handle.fp) { + fh.filename = php_ini_opened_path; + } + } /* Search php.ini file in search path */ if (!fh.handle.fp) { - char *ini_fname=emalloc(10+strlen(sapi_module.name)); - sprintf(ini_fname, "php-%s.ini", sapi_module.name); - if (!(fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC))) { - fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); + fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); + if (fh.handle.fp) { + fh.filename = php_ini_opened_path; } - efree(ini_fname); - fh.filename = php_ini_opened_path; } if (free_ini_search_path) { efree(php_ini_search_path); |