This occurs in ReadVoiceFile (voices.c) when calling isspace to isolate the attribute name. It happens because the msvc implementation of isspace asserts that the character is in a valid range, which fails for non-ASCII characters. This commit resolves the problem by calling iswspace, which uses the ucd-tools implementation.master
| @@ -20,6 +20,7 @@ | |||
| #include "config.h" | |||
| #include <ctype.h> | |||
| #include <wctype.h> | |||
| #include <errno.h> | |||
| #include <stdint.h> | |||
| #include <stdio.h> | |||
| @@ -291,7 +292,7 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, int is_languag | |||
| while (fgets_strip(linebuf, sizeof(linebuf), f_in) != NULL) { | |||
| // isolate the attribute name | |||
| for (p = linebuf; (*p != 0) && !isspace(*p); p++) ; | |||
| for (p = linebuf; (*p != 0) && !iswspace(*p); p++) ; | |||
| *p++ = 0; | |||
| if (linebuf[0] == 0) continue; | |||