From 7f42bd39b4da507e7be622b6af358300c9da40cb Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Thu, 19 Jul 2018 20:03:23 +0100 Subject: [PATCH] Move PrepareLetters next to SetLetterBitsRange. --- src/libespeak-ng/tr_languages.c | 60 ++++++++++++++++----------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index 5852f77f..cb07b394 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -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); -}