| @@ -218,7 +218,7 @@ int sync_espeak_terminated_msg(uint32_t unique_identifier, void *user_data) | |||
| #endif | |||
| static int check_data_path(const char *path) | |||
| static int check_data_path(const char *path, int allow_directory) | |||
| { | |||
| if (!path) return 0; | |||
| @@ -226,6 +226,9 @@ static int check_data_path(const char *path) | |||
| if (GetFileLength(path_home) == -2) | |||
| return 1; | |||
| if (!allow_directory) | |||
| return 0; | |||
| snprintf(path_home, sizeof(path_home), "%s", path); | |||
| return GetFileLength(path_home) == -2; | |||
| } | |||
| @@ -279,7 +282,7 @@ int GetFileLength(const char *filename) | |||
| ESPEAK_NG_API void espeak_ng_InitializePath(const char *path) | |||
| { | |||
| if (check_data_path(path)) | |||
| if (check_data_path(path, 1)) | |||
| return; | |||
| #ifdef PLATFORM_WINDOWS | |||
| @@ -288,7 +291,7 @@ ESPEAK_NG_API void espeak_ng_InitializePath(const char *path) | |||
| unsigned long var_type; | |||
| unsigned char buf[sizeof(path_home)-13]; | |||
| if (check_data_path(getenv("ESPEAK_DATA_PATH"))) | |||
| if (check_data_path(getenv("ESPEAK_DATA_PATH"), 1)) | |||
| return; | |||
| buf[0] = 0; | |||
| @@ -299,13 +302,13 @@ ESPEAK_NG_API void espeak_ng_InitializePath(const char *path) | |||
| var_type = REG_SZ; | |||
| RegQueryValueExA(RegKey, "Path", 0, &var_type, buf, &size); | |||
| if (check_data_path(buf)) | |||
| if (check_data_path(buf, 1)) | |||
| return; | |||
| #elif !defined(PLATFORM_DOS) | |||
| if (check_data_path(getenv("ESPEAK_DATA_PATH"))) | |||
| if (check_data_path(getenv("ESPEAK_DATA_PATH"), 1)) | |||
| return; | |||
| if (check_data_path(getenv("HOME"))) | |||
| if (check_data_path(getenv("HOME"), 0)) | |||
| return; | |||
| #endif | |||