|
|
@@ -384,7 +384,7 @@ USHORT *prog_out; |
|
|
|
USHORT *prog_out_max; |
|
|
|
USHORT prog_buf[MAX_PROG_BUF+20]; |
|
|
|
|
|
|
|
static void ReadPhondataManifest() |
|
|
|
static espeak_ng_STATUS ReadPhondataManifest(espeak_ng_ERROR_CONTEXT *context) |
|
|
|
{ |
|
|
|
// Read the phondata-manifest file |
|
|
|
FILE *f; |
|
|
@@ -397,7 +397,7 @@ static void ReadPhondataManifest() |
|
|
|
|
|
|
|
sprintf(buf, "%s%c%s", path_home, PATHSEP, "phondata-manifest"); |
|
|
|
if ((f = fopen(buf, "r")) == NULL) |
|
|
|
return; |
|
|
|
return create_file_error_context(context, errno, buf); |
|
|
|
|
|
|
|
while (fgets(buf, sizeof(buf), f) != NULL) |
|
|
|
n_lines++; |
|
|
@@ -411,7 +411,7 @@ static void ReadPhondataManifest() |
|
|
|
|
|
|
|
if ((manifest = (NAMETAB *)realloc(manifest, n_lines * sizeof(NAMETAB))) == NULL) { |
|
|
|
fclose(f); |
|
|
|
return; |
|
|
|
return ENOMEM; |
|
|
|
} |
|
|
|
|
|
|
|
n_manifest = 0; |
|
|
@@ -429,6 +429,8 @@ static void ReadPhondataManifest() |
|
|
|
} |
|
|
|
} |
|
|
|
fclose(f); |
|
|
|
|
|
|
|
return ENS_OK; |
|
|
|
} |
|
|
|
|
|
|
|
static const char *KeyToMnem(keywtab_t *ktab, int type, int value) |
|
|
@@ -2748,7 +2750,10 @@ static espeak_ng_STATUS CompilePhonemeData2(const char *source, FILE *log, espea |
|
|
|
if (f_errors != stderr && f_errors != stdout) |
|
|
|
fclose(f_errors); |
|
|
|
|
|
|
|
ReadPhondataManifest(); |
|
|
|
espeak_ng_STATUS status = ReadPhondataManifest(context); |
|
|
|
if (status != ENS_OK) |
|
|
|
return status; |
|
|
|
|
|
|
|
return error_count > 0 ? ENS_COMPILE_ERROR : ENS_OK; |
|
|
|
} |
|
|
|
|