| @@ -674,16 +674,15 @@ 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++) { | |||
| for (int ix = 0; ix < (len-1); ix++) { | |||
| if (phonemes[ix] == phonSTRESS_P) { | |||
| char *p; | |||
| p = &phonemes[ix+1]; | |||
| if ((dict_flags & FLAG_ALT2_TRANS) != 0) { | |||
| if (*p == PhonemeCode('E')) | |||
| @@ -795,18 +794,11 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| int n_bytes; | |||
| int letter; | |||
| int len; | |||
| int ix; | |||
| int c; | |||
| char *p2; | |||
| char *pbuf; | |||
| const char *modifier; | |||
| ALPHABET *alphabet; | |||
| int al_offset; | |||
| int al_flags; | |||
| int language; | |||
| int number; | |||
| int phontab_1; | |||
| int speak_letter_number; | |||
| char capital[30]; | |||
| char ph_buf[80]; | |||
| char ph_buf2[80]; | |||
| @@ -834,8 +826,11 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| if (ph_buf[0] == 0) { | |||
| // is this a subscript or superscript letter ? | |||
| int c; | |||
| if ((c = IsSuperscript(letter)) != 0) { | |||
| letter = c & 0x3fff; | |||
| const char *modifier; | |||
| if ((control & 4 ) && ((modifier = modifiers[c >> 14]) != NULL)) { | |||
| // don't say "superscript" during normal text reading | |||
| Lookup(tr, modifier, capital); | |||
| @@ -909,6 +904,7 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| // caution: SetWordStress() etc don't expect phonSWITCH + phoneme table number | |||
| if (ph_buf[0] == 0) { | |||
| int language; | |||
| if ((al_offset != 0) && (al_offset == translator->langopts.alt_alphabet)) | |||
| language = translator->langopts.alt_alphabet_lang; | |||
| else if ((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) | |||
| @@ -918,19 +914,21 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| if ((language != tr->translator_name) || (language == L('k', 'o'))) { | |||
| char *p3; | |||
| int initial, code; | |||
| //int initial, code; | |||
| char hangul_buf[12]; | |||
| // speak in the language for this alphabet (or English) | |||
| ph_buf[2] = SetTranslator3(WordToString2(language)); | |||
| if (translator3 != NULL) { | |||
| int code; | |||
| if (((code = letter - 0xac00) >= 0) && (letter <= 0xd7af)) { | |||
| // Special case for Korean letters. | |||
| // break a syllable hangul into 2 or 3 individual jamo | |||
| hangul_buf[0] = ' '; | |||
| p3 = &hangul_buf[1]; | |||
| int initial; | |||
| if ((initial = (code/28)/21) != 11) { | |||
| p3 += utf8_out(initial + 0x1100, p3); | |||
| } | |||
| @@ -966,7 +964,7 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| if (ph_buf[0] == 0) { | |||
| // character name not found | |||
| speak_letter_number = 1; | |||
| int speak_letter_number = 1; | |||
| if (!(al_flags & AL_NO_SYMBOL)) { | |||
| if (iswalpha(letter)) | |||
| Lookup(translator, "_?A", ph_buf); | |||
| @@ -984,10 +982,11 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| } | |||
| if (speak_letter_number) { | |||
| char *p2; | |||
| if (al_offset == 0x2800) { | |||
| // braille dots symbol, list the numbered dots | |||
| p2 = hexbuf; | |||
| for (ix = 0; ix < 8; ix++) { | |||
| for (int ix = 0; ix < 8; ix++) { | |||
| if (letter & (1 << ix)) | |||
| *p2++ = '1'+ix; | |||
| } | |||
| @@ -997,6 +996,7 @@ static int TranslateLetter(Translator *tr, char *word, char *phonemes, int contr | |||
| sprintf(hexbuf, "%x", letter); | |||
| } | |||
| char *pbuf; | |||
| pbuf = ph_buf; | |||
| for (p2 = hexbuf; *p2 != 0; p2++) { | |||
| pbuf += strlen(pbuf); | |||
| @@ -1046,8 +1046,6 @@ static int CheckDottedAbbrev(char *word1) | |||
| { | |||
| int wc; | |||
| int count = 0; | |||
| int nbytes; | |||
| int ok; | |||
| int ix; | |||
| char *word; | |||
| char *wbuf; | |||
| @@ -1057,8 +1055,8 @@ static int CheckDottedAbbrev(char *word1) | |||
| wbuf = word_buf; | |||
| for (;;) { | |||
| ok = 0; | |||
| nbytes = utf8_in(&wc, word); | |||
| int ok = 0; | |||
| int nbytes = utf8_in(&wc, word); | |||
| if ((word[nbytes] == ' ') && IsAlpha(wc)) { | |||
| if (word[nbytes+1] == '.') { | |||
| if (word[nbytes+2] == ' ') | |||