| @@ -2214,7 +2214,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c | |||
| if (letter == 0xe000+'(') { | |||
| if (pre_pause < tr->langopts.param[LOPT_BRACKET_PAUSE_ANNOUNCED]) | |||
| pre_pause = tr->langopts.param[LOPT_BRACKET_PAUSE_ANNOUNCED]; // a bracket, already spoken by AnnouncePunctuation() | |||
| } | |||
| } | |||
| if (IsBracket(letter)) { | |||
| if (pre_pause < tr->langopts.param[LOPT_BRACKET_PAUSE]) | |||
| pre_pause = tr->langopts.param[LOPT_BRACKET_PAUSE]; | |||
| @@ -2325,37 +2325,6 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c | |||
| return 0; | |||
| } | |||
| void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags) | |||
| { | |||
| // apply after the translation is complete | |||
| int ix; | |||
| int len; | |||
| char *p; | |||
| len = strlen(phonemes); | |||
| if (tr->langopts.param[LOPT_ALT] & 2) { | |||
| for (ix = 0; ix < (len-1); ix++) { | |||
| if (phonemes[ix] == phonSTRESS_P) { | |||
| p = &phonemes[ix+1]; | |||
| if ((dict_flags & FLAG_ALT2_TRANS) != 0) { | |||
| if (*p == PhonemeCode('E')) | |||
| *p = PhonemeCode('e'); | |||
| if (*p == PhonemeCode('O')) | |||
| *p = PhonemeCode('o'); | |||
| } else { | |||
| if (*p == PhonemeCode('e')) | |||
| *p = PhonemeCode('E'); | |||
| if (*p == PhonemeCode('o')) | |||
| *p = PhonemeCode('O'); | |||
| } | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| int TransposeAlphabet(Translator *tr, char *text) | |||
| { | |||
| // transpose cyrillic alphabet (for example) into ascii (single byte) character codes | |||
| @@ -681,8 +681,6 @@ void ProcessLanguageOptions(LANGUAGE_OPTIONS *langopts); | |||
| void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len); | |||
| void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags); | |||
| int TranslateWord(Translator *tr, char *word1, WORD_TAB *wtab, char *word_out); | |||
| void TranslateClause(Translator *tr, int *tone, char **voice_change); | |||
| @@ -46,6 +46,7 @@ | |||
| static void addPluralSuffixes(int flags, Translator *tr, char last_char, char *word_phonemes); | |||
| static void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags); | |||
| static void ChangeWordStress(Translator *tr, char *word, int new_stress); | |||
| static int CheckDottedAbbrev(char *word1); | |||
| static int NonAsciiNumber(int letter); | |||
| @@ -670,6 +671,38 @@ int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char *word_ | |||
| } | |||
| void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags) | |||
| { | |||
| // apply after the translation is complete | |||
| int ix; | |||
| int len; | |||
| char *p; | |||
| len = strlen(phonemes); | |||
| if (tr->langopts.param[LOPT_ALT] & 2) { | |||
| for (ix = 0; ix < (len-1); ix++) { | |||
| if (phonemes[ix] == phonSTRESS_P) { | |||
| p = &phonemes[ix+1]; | |||
| if ((dict_flags & FLAG_ALT2_TRANS) != 0) { | |||
| if (*p == PhonemeCode('E')) | |||
| *p = PhonemeCode('e'); | |||
| if (*p == PhonemeCode('O')) | |||
| *p = PhonemeCode('o'); | |||
| } else { | |||
| if (*p == PhonemeCode('e')) | |||
| *p = PhonemeCode('E'); | |||
| if (*p == PhonemeCode('o')) | |||
| *p = PhonemeCode('O'); | |||
| } | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| static void ChangeWordStress(Translator *tr, char *word, int new_stress) | |||
| { | |||
| int ix; | |||