| return strchr((char *)s, c); // (char *) is needed for Borland compiler | return strchr((char *)s, c); // (char *) is needed for Borland compiler | ||||
| } | } | ||||
| // append plural suffixes depending on preceding letter | |||||
| void addPluralSuffixes(int flags, Translator *tr, char last_char, char *word_phonemes) | |||||
| { | |||||
| char word_zz[4] = { 0, 'z', 'z', 0 }; | |||||
| char word_iz[4] = { 0, 'i', 'z', 0 }; | |||||
| char word_ss[4] = { 0, 's', 's', 0 }; | |||||
| if (flags & FLAG_HAS_PLURAL) { | |||||
| // s or 's suffix, append [s], [z] or [Iz] depending on previous letter | |||||
| if (last_char == 'f') | |||||
| TranslateRules(tr, &word_ss[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| else if ((last_char == 0) || (strchr_w("hsx", last_char) == NULL)) | |||||
| TranslateRules(tr, &word_zz[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| else | |||||
| TranslateRules(tr, &word_iz[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| } | |||||
| } | |||||
| static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word) | static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word) | ||||
| { | { | ||||
| int posn = 0; | int posn = 0; | ||||
| return dictionary_flags[0]; | return dictionary_flags[0]; | ||||
| } | } | ||||
| // append plural suffixes depending on preceding letter | |||||
| void addPluralSuffixes(int flags, Translator *tr, char last_char, char *word_phonemes) | |||||
| { | |||||
| char word_zz[4] = { 0, 'z', 'z', 0 }; | |||||
| char word_iz[4] = { 0, 'i', 'z', 0 }; | |||||
| char word_ss[4] = { 0, 's', 's', 0 }; | |||||
| if (flags & FLAG_HAS_PLURAL) { | |||||
| // s or 's suffix, append [s], [z] or [Iz] depending on previous letter | |||||
| if (last_char == 'f') | |||||
| TranslateRules(tr, &word_ss[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| else if ((last_char == 0) || (strchr_w("hsx", last_char) == NULL)) | |||||
| TranslateRules(tr, &word_zz[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| else | |||||
| TranslateRules(tr, &word_iz[1], word_phonemes, N_WORD_PHONEMES, | |||||
| NULL, 0, NULL); | |||||
| } | |||||
| } | |||||
| int TranslateWord(Translator *tr, char *word_start, WORD_TAB *wtab, char *word_out) | int TranslateWord(Translator *tr, char *word_start, WORD_TAB *wtab, char *word_out) | ||||
| { | { |