mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Simplify printing the replace message.
This commit is contained in:
@@ -1790,11 +1790,18 @@ static int EmbeddedCommand(unsigned int *source_index_out)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const char *
|
||||
FindReplacementChars(Translator *tr, unsigned int c, unsigned int nextc, bool *ignore_next) {
|
||||
static const char * FindReplacementChars(
|
||||
Translator *tr,
|
||||
const char **pfrom,
|
||||
unsigned int c,
|
||||
unsigned int nextc,
|
||||
bool *ignore_next
|
||||
) {
|
||||
unsigned int uc = 0;
|
||||
const char *from = (const char *)tr->langopts.replace_chars;
|
||||
const char *from = *pfrom;
|
||||
while (*(unsigned int *)from != 0) {
|
||||
*pfrom = from;
|
||||
|
||||
from += utf8_in((int *)&uc, from);
|
||||
if (c == uc) {
|
||||
if (*from == 0) return from + 1;
|
||||
@@ -1829,7 +1836,8 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
}
|
||||
if (c == 0) return 0;
|
||||
|
||||
if (tr->langopts.replace_chars == NULL)
|
||||
const char *from = (const char *)tr->langopts.replace_chars;
|
||||
if (from == NULL)
|
||||
return c;
|
||||
|
||||
// there is a list of character codes to be substituted with alternative codes
|
||||
@@ -1839,10 +1847,13 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
upper_case = 1;
|
||||
}
|
||||
|
||||
const char *to = FindReplacementChars(tr, c_lower, next_in, &ignore_next);
|
||||
const char *to = FindReplacementChars(tr, &from, c_lower, next_in, &ignore_next);
|
||||
if (to == NULL)
|
||||
return c; // no substitution
|
||||
|
||||
if (option_phonemes & espeakPHONEMES_TRACE)
|
||||
fprintf(f_trans, "Replace: %s > %s\n", from, to);
|
||||
|
||||
to += utf8_in((int *)&new_c, to);
|
||||
if (*to != 0) {
|
||||
// there is a second character to be inserted
|
||||
@@ -1857,19 +1868,6 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
new_c = ucd_toupper(new_c);
|
||||
|
||||
*wordflags |= FLAG_CHAR_REPLACED;
|
||||
if (option_phonemes & espeakPHONEMES_TRACE) {
|
||||
char msg[21] = {'R','e','p','l','a','c','e',':',' '};
|
||||
char *index = msg;
|
||||
index += 9;
|
||||
index += utf8_out(c, index);
|
||||
*index++ = ' ';
|
||||
*index++ = '>';
|
||||
*index++ = ' ';
|
||||
index += utf8_out(new_c, index);
|
||||
index += utf8_out(c2, index);
|
||||
*index = 0;
|
||||
fprintf(f_trans, "%s\n", msg);
|
||||
}
|
||||
return new_c;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user