From eb7ff287d4f7f7eaac9e90ed25538a7ae7a84fce Mon Sep 17 00:00:00 2001 From: jonsd Date: Tue, 31 Jul 2007 09:43:34 +0000 Subject: [PATCH] [1.28.04] espeakedit: look for environment variable ESPEAK_DATA_PATH git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@72 d46cf337-b52f-0410-862d-fd96e6ae7743 --- src/options.cpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/options.cpp b/src/options.cpp index 981ab841..462b1e57 100755 --- a/src/options.cpp +++ b/src/options.cpp @@ -125,21 +125,32 @@ void ConfigInit() const char *path_base; #ifdef PLATFORM_WINDOWS + int found = 0; char buf[200]; wxRegKey *pRegKey = new wxRegKey(_T("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak")); - if(pRegKey->Exists() ) + if((path_base = getenv("ESPEAK_DATA_PATH")) != NULL) { - wxString RegVal; - pRegKey->QueryValue(_T("Path"),RegVal); - strncpy0(buf,RegVal.mb_str(wxConvLocal),sizeof(buf)); - path_base = buf; + sprintf(path_home,"%s\\espeak-data",path_base); + if(GetFileLength(path_home) == -2) + found = 1; // an espeak-data directory exists } - else + + if(found == 0) { - path_base = "C:\\Program Files\\eSpeak"; + if(pRegKey->Exists() ) + { + wxString RegVal; + pRegKey->QueryValue(_T("Path"),RegVal); + strncpy0(buf,RegVal.mb_str(wxConvLocal),sizeof(buf)); + path_base = buf; + } + else + { + path_base = "C:\\Program Files\\eSpeak"; + } + sprintf(path_home,"%s\\espeak-data",path_base); } - sprintf(path_home,"%s\\espeak-data",path_base); #else snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); path_base = path_home;