compiledata: Display the actual error from phoneme_add_feature.

This commit is contained in:
Reece H. Dunn
2017-01-28 12:37:41 +00:00
parent 0ee9c84fe3
commit b4297c2851
2 changed files with 14 additions and 2 deletions
+1
View File
@@ -10,6 +10,7 @@ The espeak-ng project is a fork of the espeak project.
### 1.49.2 - (In Development)
* Support describing all IPA phonemes in the phoneme tables.
* Provide more validation when compiling phoneme tables.
* Removed support for phoneme equivalence tables. These were disabled in the
French and German language files.
+13 -2
View File
@@ -584,6 +584,16 @@ static void error(const char *format, ...)
va_end(args);
}
static void error_from_status(espeak_ng_STATUS status, const char *context)
{
char message[512];
espeak_ng_GetStatusCodeMessage(status, message, sizeof(message));
if (context)
error("%s: '%s'.", message, context);
else
error("%s.", message);
}
static unsigned int StringToWord(const char *string)
{
// Pack 4 characters into a word
@@ -2012,9 +2022,10 @@ int CompilePhoneme(int compile_phoneme)
}
phoneme_feature_t feature = phoneme_feature_from_string(item_string);
if (phoneme_add_feature(phoneme_out, feature) == ENS_OK)
espeak_ng_STATUS status = phoneme_add_feature(phoneme_out, feature);
if (status == ENS_OK)
continue;
error("Bad keyword in phoneme definition '%s'", item_string);
error_from_status(status, item_string);
continue;
}