mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-05 22:53:38 +00:00
Move PrepareLetters next to SetLetterBitsRange.
This commit is contained in:
@@ -113,8 +113,6 @@ ALPHABET *AlphabetFromChar(int c)
|
||||
|
||||
static void Translator_Russian(Translator *tr);
|
||||
|
||||
static void PrepareLetters(const char *, char *, int, int);
|
||||
|
||||
static void ResetLetterBits(Translator *tr, int groups)
|
||||
{
|
||||
// Clear all the specified groups
|
||||
@@ -147,6 +145,35 @@ static void SetLetterBitsRange(Translator *tr, int group, int first, int last)
|
||||
tr->letter_bits[ix] |= bits;
|
||||
}
|
||||
|
||||
static void PrepareLetters(const char *letters, char *codes, int size, int shift)
|
||||
{
|
||||
/* Prepare array of shifted letter codes for letter groups from passed string.
|
||||
* letters: pointer to string of UTF-8 encoded letters (can be space delimited).
|
||||
* codes: pointer to array of letter codes.
|
||||
* size: size of reserved cells in codes array, (last cell in codes should be leaved for null value).
|
||||
* shift: value of downshift, to fit UTF-16 letters into ANSII (char) range.
|
||||
*/
|
||||
const char *p = letters;
|
||||
int bytes = 0;
|
||||
int code = -1;
|
||||
int count = 0;
|
||||
while (code != 0) {
|
||||
bytes = utf8_in(&code, p);
|
||||
if (code > 0x20) {
|
||||
*codes = code - shift;
|
||||
codes++;
|
||||
count++;
|
||||
}
|
||||
p += bytes;
|
||||
}
|
||||
codes++;
|
||||
*codes = 0;
|
||||
if (size != count + 1)
|
||||
fprintf(stderr,
|
||||
"PrepareLetters() error: different sizes of letter arrays reserved: %d, used:%d.\n",
|
||||
size, count + 1);
|
||||
}
|
||||
|
||||
// ignore these characters
|
||||
static const unsigned short chars_ignore_default[] = {
|
||||
// U+00AD SOFT HYPHEN
|
||||
@@ -1624,32 +1651,3 @@ static void Translator_Russian(Translator *tr)
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;
|
||||
tr->langopts.numbers2 = 0x2 + NUM2_THOUSANDS_VAR1; // variant numbers before thousands
|
||||
}
|
||||
|
||||
static void PrepareLetters(const char *letters, char *codes, int size, int shift)
|
||||
{
|
||||
/* Prepare array of shifted letter codes for letter groups from passed string.
|
||||
* letters: pointer to string of UTF-8 encoded letters (can be space delimited).
|
||||
* codes: pointer to array of letter codes.
|
||||
* size: size of reserved cells in codes array, (last cell in codes should be leaved for null value).
|
||||
* shift: value of downshift, to fit UTF-16 letters into ANSII (char) range.
|
||||
*/
|
||||
const char *p = letters;
|
||||
int bytes = 0;
|
||||
int code = -1;
|
||||
int count = 0;
|
||||
while (code != 0) {
|
||||
bytes = utf8_in(&code, p);
|
||||
if (code > 0x20) {
|
||||
*codes = code - shift;
|
||||
codes++;
|
||||
count++;
|
||||
}
|
||||
p += bytes;
|
||||
}
|
||||
codes++;
|
||||
*codes = 0;
|
||||
if (size != count + 1)
|
||||
fprintf(stderr,
|
||||
"PrepareLetters() error: different sizes of letter arrays reserved: %d, used:%d.\n",
|
||||
size, count + 1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user