|  |  | @@ -67,6 +67,9 @@ static int SubstitutePhonemes(PHONEME_LIST *plist_out) | 
		
	
		
			
			|  |  |  | deleted_sourceix = -1; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (plist2->phcode == phonSWITCH) | 
		
	
		
			
			|  |  |  | SelectPhonemeTable(plist2->tone_ph); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // don't do any substitution if the language has been temporarily changed | 
		
	
		
			
			|  |  |  | if (!(plist2->synthflags & SFLAG_SWITCHED_LANG)) { | 
		
	
		
			
			|  |  |  | if (ix < (n_ph_list2 -1)) | 
		
	
	
		
			
			|  |  | @@ -207,6 +210,8 @@ void MakePhonemeList(Translator *tr, int post_pause, bool start_sentence) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | n_ph_list2 -= delete_count; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | SelectPhonemeTable(current_phoneme_tab); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if ((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) { | 
		
	
		
			
			|  |  |  | // set consonant clusters to all voiced or all unvoiced | 
		
	
		
			
			|  |  |  | // Regressive | 
		
	
	
		
			
			|  |  | @@ -215,6 +220,17 @@ void MakePhonemeList(Translator *tr, int post_pause, bool start_sentence) | 
		
	
		
			
			|  |  |  | voicing = 0; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for (j = n_ph_list2-1; j >= 0; j--) { | 
		
	
		
			
			|  |  |  | if (plist2[j].phcode == phonSWITCH) { | 
		
	
		
			
			|  |  |  | /* Find previous phonSWITCH to determine language we're switching back to */ | 
		
	
		
			
			|  |  |  | int k; | 
		
	
		
			
			|  |  |  | for (k = j-1; k >= 0; k--) | 
		
	
		
			
			|  |  |  | if (plist2[k].phcode == phonSWITCH) | 
		
	
		
			
			|  |  |  | break; | 
		
	
		
			
			|  |  |  | if (k >= 0) | 
		
	
		
			
			|  |  |  | SelectPhonemeTable(plist2[k].tone_ph); | 
		
	
		
			
			|  |  |  | else | 
		
	
		
			
			|  |  |  | SelectPhonemeTable(tr->phoneme_tab_ix); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | ph = phoneme_tab[plist2[j].phcode]; | 
		
	
		
			
			|  |  |  | if (ph == NULL) | 
		
	
		
			
			|  |  |  | continue; |