Note: This feature has no tests.master
| #include "config.h" | #include "config.h" | ||||
| #include <ctype.h> | |||||
| #include <errno.h> | #include <errno.h> | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include <stdio.h> | #include <stdio.h> | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case V_NUMBERS: { | |||||
| // if (CheckTranslator(translator, langopts_tab, key) != 0) | |||||
| break; | |||||
| // expect a list of numbers | |||||
| while (*keyValue != 0) { | |||||
| while (isspace(*keyValue)) keyValue++; | |||||
| if ((n = atoi(keyValue)) > 0) { | |||||
| keyValue++; | |||||
| if (n < 32) { | |||||
| translator->langopts.numbers |= (1 << n); | |||||
| } else { | |||||
| if (n < 64) | |||||
| translator->langopts.numbers2 |= (1 << (n-32)); | |||||
| else | |||||
| fprintf(stderr, "numbers: Bad option number %d\n", n); } | |||||
| } | |||||
| while (isalnum(*keyValue)) keyValue++; | |||||
| } | |||||
| ProcessLanguageOptions(&(translator->langopts)); | |||||
| break; | |||||
| } | |||||
| case V_LOWERCASE_SENTENCE: { | case V_LOWERCASE_SENTENCE: { | ||||
| if (CheckTranslator(translator, langopts_tab, key) != 0) | if (CheckTranslator(translator, langopts_tab, key) != 0) | ||||
| break; | break; |
| tr->langopts.param[LOPT_IT_DOUBLING] = 1; | tr->langopts.param[LOPT_IT_DOUBLING] = 1; | ||||
| tr->langopts.long_stop = 130; | tr->langopts.long_stop = 130; | ||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2 | NUM_ORDINAL_DOT; | |||||
| // tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2 | NUM_ORDINAL_DOT; | |||||
| SetLetterVowel(tr, 'y'); | SetLetterVowel(tr, 'y'); | ||||
| tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
| tr->langopts.intonation_group = 3; // less intonation, don't raise pitch at comma | tr->langopts.intonation_group = 3; // less intonation, don't raise pitch at comma |
| { "dictrules", V_DICTRULES }, | { "dictrules", V_DICTRULES }, | ||||
| { "intonation", V_INTONATION }, | { "intonation", V_INTONATION }, | ||||
| { "lowercaseSentence", V_LOWERCASE_SENTENCE }, | { "lowercaseSentence", V_LOWERCASE_SENTENCE }, | ||||
| { "numbers", V_NUMBERS }, | |||||
| { "stressAdd", V_STRESSADD }, | { "stressAdd", V_STRESSADD }, | ||||
| { "stressAmp", V_STRESSAMP }, | { "stressAmp", V_STRESSAMP }, | ||||
| { "stressLength", V_STRESSLENGTH }, | { "stressLength", V_STRESSLENGTH }, | ||||
| { "voicing", V_VOICING }, | { "voicing", V_VOICING }, | ||||
| { "breath", V_BREATH }, | { "breath", V_BREATH }, | ||||
| { "breathw", V_BREATHW }, | { "breathw", V_BREATHW }, | ||||
| { "numbers", V_NUMBERS }, | |||||
| { "mbrola", V_MBROLA }, | { "mbrola", V_MBROLA }, | ||||
| { "consonants", V_CONSONANTS }, | { "consonants", V_CONSONANTS }, | ||||
| { "klatt", V_KLATT }, | { "klatt", V_KLATT }, | ||||
| case V_NUMBERS: | |||||
| if (CheckTranslator(translator, keyword_tab, key) != 0) | |||||
| break; | |||||
| // expect a list of numbers | |||||
| while (*p != 0) { | |||||
| while (isspace(*p)) p++; | |||||
| if ((n = atoi(p)) > 0) { | |||||
| p++; | |||||
| if (n < 32) { | |||||
| translator->langopts.numbers |= (1 << n); | |||||
| } else { | |||||
| if (n < 64) | |||||
| translator->langopts.numbers2 |= (1 << (n-32)); | |||||
| else | |||||
| fprintf(stderr, "numbers: Bad option number %d\n", n); } | |||||
| } | |||||
| while (isalnum(*p)) p++; | |||||
| } | |||||
| ProcessLanguageOptions(&(translator->langopts)); | |||||
| break; | |||||
| case V_REPLACE: | case V_REPLACE: | ||||
| if (phonemes_set == false) { | if (phonemes_set == false) { | ||||
| // must set up a phoneme table before we can lookup phoneme mnemonics | // must set up a phoneme table before we can lookup phoneme mnemonics |