Browse Source

code cleanup: make a function for checking tr->chars_ignore

ReadClause() is very long and should be shortened for code readability
master
Juho Hiltunen 2 years ago
parent
commit
7492475728
1 changed files with 14 additions and 7 deletions
  1. 14
    7
      src/libespeak-ng/readclause.c

+ 14
- 7
src/libespeak-ng/readclause.c View File

@@ -478,6 +478,17 @@ static int lookupwchar2(const unsigned short *list, int c)
return 0;
}

static bool IgnoreOrReplaceChar(Translator *tr, int *c1) {
int i;
if ((i = lookupwchar2(tr->chars_ignore, *c1)) != 0) {
if (i == 1) {
// ignore this character
return true;
}
*c1 = i; // replace current character with the result
}
return false;
}

int ReadClause(Translator *tr, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change)
{
@@ -703,13 +714,9 @@ int ReadClause(Translator *tr, char *buf, short *charix, int *charix_top, int n_

linelength++;

if ((j = lookupwchar2(tr->chars_ignore, c1)) != 0) {
if (j == 1) {
// ignore this character (eg. zero-width-non-joiner U+200C)
continue;
}
c1 = j; // replace the character
}
if (IgnoreOrReplaceChar(tr, &c1) == true)
continue;


if (iswalnum(c1))
any_alnum = true;

Loading…
Cancel
Save