| @@ -369,7 +369,7 @@ typedef enum | |||
| LINE_PARSER_MULTIPLE_WORDS = 2, | |||
| LINE_PARSER_END_OF_WORDS = 3, | |||
| LINE_PARSER_PRONUNCIATION = 4, | |||
| LINE_PARSER_END = 5, | |||
| LINE_PARSER_END_OF_PRONUNCIATION = 5, | |||
| } LINE_PARSER_STATES; | |||
| static int compile_line(char *linebuf, char *dict_line, int *hash) | |||
| @@ -379,6 +379,7 @@ static int compile_line(char *linebuf, char *dict_line, int *hash) | |||
| char *p; | |||
| char *word; | |||
| char *phonetic; | |||
| char *phonetic_end; | |||
| unsigned int ix; | |||
| LINE_PARSER_STATES step; | |||
| unsigned int n_flag_codes = 0; | |||
| @@ -519,11 +520,16 @@ static int compile_line(char *linebuf, char *dict_line, int *hash) | |||
| break; | |||
| case LINE_PARSER_PRONUNCIATION: | |||
| if (isspace2(c)) { | |||
| phonetic_end = p; | |||
| p[0] = 0; // terminate phonetic | |||
| step = LINE_PARSER_END; | |||
| step = LINE_PARSER_END_OF_PRONUNCIATION; | |||
| } | |||
| break; | |||
| case LINE_PARSER_END: | |||
| case LINE_PARSER_END_OF_PRONUNCIATION: | |||
| if (!isspace2(c)) { | |||
| *phonetic_end = ' '; | |||
| step = LINE_PARSER_PRONUNCIATION; | |||
| } | |||
| break; | |||
| } | |||
| p++; | |||