| 
				
			 | 
			
			 | 
			@@ -218,6 +218,7 @@ static const char *VoiceFromStack(SSML_STACK *ssml_stack, int n_ssml_stack, espe | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				int voice_found; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				espeak_VOICE voice_select; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				static char voice_name[40]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				static char identifier[40]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				char language[40]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				MAKE_MEM_UNDEFINED(&voice_name, sizeof(voice_name)); | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -230,12 +231,14 @@ static const char *VoiceFromStack(SSML_STACK *ssml_stack, int n_ssml_stack, espe | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				voice_select.identifier = NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				for (ix = 0; ix < n_ssml_stack; ix++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					espeak_VOICE *v; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					sp = &ssml_stack[ix]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					int voice_name_specified = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if ((sp->voice_name[0] != 0) && (SelectVoiceByName(NULL, sp->voice_name) != NULL)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if ((sp->voice_name[0] != 0) && ((v = SelectVoiceByName(NULL, sp->voice_name)) != NULL)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						voice_name_specified = 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						strcpy(voice_name, sp->voice_name); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						strcpy(identifier, v->identifier); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						language[0] = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						voice_select.gender = ENGENDER_UNKNOWN; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						voice_select.age = 0; | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -256,7 +259,10 @@ static const char *VoiceFromStack(SSML_STACK *ssml_stack, int n_ssml_stack, espe | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (voice_name_specified == 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							voice_name[0] = 0; // forget a previous voice name if a language is specified | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							identifier[0] = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (sp->voice_gender != ENGENDER_UNKNOWN) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						voice_select.gender = sp->voice_gender; | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -268,7 +274,9 @@ static const char *VoiceFromStack(SSML_STACK *ssml_stack, int n_ssml_stack, espe | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				voice_select.name = voice_name; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				voice_select.identifier = identifier; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				voice_select.languages = language; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				v_id = SelectVoice(&voice_select, &voice_found); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (v_id == NULL) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return "default"; |