Verified fixed in 1.47.04.
2013-04-03 17:22:16 PDT in eSpeak: speech sy...
Steps to reproduce: 1. Create an espeak_VOICE struct, set languages to "en" and call espeak_SetVoiceByProperties using this struct. 2. Call espeak_SetVoiceByName with "de". (Alternatively, call espeak_SetVoiceByProperties with an espeak_VOICE struct with identifier set to "de".) 3. Speak the string "1". Result (correct): eSpeak says "eins"...
2013-04-03 00:13:08 PDT in eSpeak: speech sy...
Could this fix please be included in the upcoming eSpeak 1.47 stable release? Without it, eSpeak causes NVDA to crash whenever it encounters these characters.
2013-03-26 09:19:26 PDT in eSpeak: speech sy...
char is signed. i think you want unsigned char, not char. Casting an 8 bit char to an int yields a negative int. For example, observe the following code: char c = 0xff; int i = c; printf("%d\n", i); The result will be -1, not 255. If you change c to an unsigned char, you will get 255 as expected. Of course, you could also cast to avoid having to change all of your types.
2013-03-25 14:54:54 PDT in eSpeak: speech sy...
There are several places in eSpeak where isdigit() can be called with a negative number. isdigit() should only be called with valid unsigned chars, even though it accepts an int. This usually isn't a problem, but it does cause debug assertions in MSVCRT. I'm not sure why this happens. 1. Speak the following string in English: "\ud7a4s" (where \ud7a4 means the character U+d7a4). In...
2013-03-25 00:06:29 PDT in eSpeak: speech sy...
Speaking a braille character which contains more than 5 dots (e.g. U+283f, braille 1 2 3 4 5 6) causes an overrun of hexbuf in TranslateLetter. In optimised Windows builds (as used by NVDA), this causes a crash.
2013-03-24 23:06:08 PDT in eSpeak: speech sy...