diff --git a/src/phonemelist.cpp b/src/phonemelist.cpp index 1e39610f..a0c3f9d4 100644 --- a/src/phonemelist.cpp +++ b/src/phonemelist.cpp @@ -341,10 +341,13 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) ph = phoneme_tab[plist3->phcode]; plist3[0].ph = ph; - if((plist3->phcode == phonSWITCH) && !(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? + if(plist3->phcode == phonSWITCH) { - if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) - continue; // next phoneme is also a phonSWITCH, so ignore + if(!(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? + { + if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) + continue; // next phoneme is also a phonSWITCH, so ignore + } // change phoneme table SelectPhonemeTable(plist3->tone_ph); diff --git a/src/readclause.cpp b/src/readclause.cpp index 785356ed..b701d854 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -643,7 +643,7 @@ static const char *LookupCharName(Translator *tr, int c, int only) } } - if((only==0) && (phonemes[0] == 0) && (tr->translator_name != L('e','n'))) + if((only==0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e','n'))) { // not found, try English SetTranslator2("en");