Commit Graph
107 Commits
Author SHA1 Message Date
Samuel Thibault cd33c4042a MatchRule: Do not go back before the pre-ptr
pre_ptr is already one byte before the current letter, so we do not want
to subtract 1 again. Otherwise this would for instance underflow word_iz
of addPluralSuffixes.
2022-03-15 04:08:51 +01:00
Juho Hiltunen d80f1a80a2 Use ESPEAKNG_DEFAULT_VOICE instead of hard coded "en".
This will make it easier to set a default voice other than
English. This is important for cases when a language will fall back to
the default voice.

Some references to L('e', 'n') still need to be changed.
2021-08-10 19:57:53 +03:00
Juho Hiltunen f269acf22c code cleanup: remove unneeded switch case for stress_rule = 10.
There are nolanguages that use stress_rule = 10.
2021-06-29 15:55:05 +03:00
Juho Hiltunen c6ef7061ca code cleanup: use #defines for stress positions.
The #defines should be renamed to better convey their meaning.
2021-06-29 15:54:45 +03:00
agonzalezd 2fb981855b eu: Updated Basque phonetics and stress rule 2021-06-29 15:14:26 +03:00
Juho Hiltunen 389ce6b738 code cleanup: remove unused FLAG_HYPHENATED and related code.
The flag is never set anywhere so the if-clause will always evaluate to false.
2021-05-28 20:52:49 +03:00
Juho Hiltunen 0cf3ee564c Code cleanup: remove param2 from langopts and rename keyword option in language files.
- param2[] is only used to set a second value to LOPT_BRACKET_PAUSE. It is simpler
to have two values in param[] instead. This simplifies the codebase.

- Instead of setting "option bracket X Y" in language files, use
keywords "brackets X" and "bracketsAnnounced Y" instead to follow the
naming convention of other keywords.

- Add missing documentation to docs/voices.md.
2021-02-21 15:01:29 +02:00
freddii 61efed30fa fixed spelling mistakes 2021-01-13 01:55:34 +01:00
Juho Hiltunen ee944700f8 code cleanup: Check all local includes with include-what-you-use
Going through files in src/libespeak-ng/, include-what-you-use removed a
few unnecessary includes and included explanations on why a certain
header should be included. This makes tracking globals and dependencies easier.

Running the codebase through IWYU should be repeated after each major
code restIncludes to standard c library weren't checked to avoid
breaking builds with other platforms.

See https://github.com/include-what-you-use/include-what-you-use
2020-07-24 07:29:47 +03:00
BenTalagan 9fd480afbf Fixing typos and naming 2019-11-19 12:30:32 +01:00
BenTalagan 94677f4af8 Rule alignment fixes for non compliant platforms / Fix for emscripten demo 2019-11-19 09:54:11 +01:00
Reece H. Dunn c6ac526847 When printing phonemes, don't add a space at the start of a sentence or clause. 2018-08-19 13:11:18 +01:00
Reece H. Dunn 55c64036e0 Use UTF-8 strings in replace rules, instead of a packed UTF-16 pair. 2018-07-23 22:12:20 +01:00
Reece H. Dunn 0e91fcbc04 Don't use pw when reading the replacement data. 2018-07-23 21:15:05 +01:00
Reece H. Dunn 424f705525 Revert the new (broken) replacement rule logic.
The replacement tests for bs, hr, and sr are no longer marked as
broken as they work using the old code. The mk tests keep the
broken annotation, as they don't work in the old code either.

This reverts commit 801a8d197c.
This reverts commit 64d5701e5e.
This reverts commit 3b51ebf617.
This reverts commit 1fd235d2c0.
This reverts commit 9f0667de86.
2018-07-23 19:38:46 +01:00
Valdis Vitolins 9f0667de86 Part of issue #199 — extend .replace rule to allow using groups of characters 2018-07-09 20:27:51 +03:00
Reece H. Dunn 55d001514e Don't print 'Bad rules data in ...' if there are no rules in the dictionary. 2018-05-13 09:36:18 +01:00
Reece H. Dunn 5ebf5b8fa4 en: Fix several -er and -est words (e.g. wickeder, wickedest, brittlest). 2018-04-01 12:06:18 +01:00
Reece H. Dunn 36c29c479a LookupDict2: Check if flags is not null before setting it. [msvc /analyze] 2018-03-27 12:55:18 +01:00
Reece H. Dunn 28f700e829 en: fix resignedly, manoeuvred, reckon, Frances (name), and sponging. 2018-03-26 07:31:51 +01:00
Reece H. Dunn 566e904b33 LookupDict2: Fix searching entries longer than 128
This is a fix for https://github.com/nvaccess/nvda/issues/7740.

With the addition of emoji support, dictionary entries can now be
longer than 128 bytes. This fix makes sure the character is
interpreted as an unsigned byte so it does not treat long entries
as having a negative offset.

Treating the offset as a signed byte (like in the previous code)
could cause the hash chain search to loop indefinitely when
processing certain input, like the Tamil characters in the NVDA
issue noted above that is added as a test case to translate.test.
2018-03-25 12:52:22 +01:00
Reece H. Dunn b7a8751f4d Remove a redundant comment -- history is available in git. 2018-03-24 14:32:43 +00:00
Juho Hiltunen c4ec7bfe34 remove option_phoneme_variants that is never set and always evaluates true 2018-03-24 15:03:12 +02:00
Reece H. Dunn dfe66289c8 Don't set final_ph2 to before phonetic in the stack if ix=1. 2018-03-22 20:52:28 +00:00
Reece H. Dunn 7dad0dfd40 Prevent TranslateRoman reading stack data from Lookup. 2018-03-22 20:12:35 +00:00
Reece H. Dunn b24db06a84 Copy name to tr->dictionary_name if not equal
This is a similar change to b60d2452c3.
In this case, it is when tr->dictionary_name is passed as the name
parameter in LoadDictionary.

This happens in the SetTranslator2 function when loading the
dictionary for the second language translator object.
2018-03-22 19:48:56 +00:00
Reece H. Dunn b60d2452c3 Copy name in LoadDictionary if not dictionary_name
compiledict.c sets dict_name to dictionary_name if dict_name is
not set, and passes that to LoadDictionary. LoadDictionary then
copies the passed in name to dictionary_name.

This causes -fsanitize=address to fail with overlapping memory
addresses passed to strncpy (copying the string to itself). As
such, don't copy the name in this case.
2018-03-21 20:37:44 +00:00
Juho Hiltunen 231a1d0944 headers: add new file dictionary.h with declarations of functions in dictionary.c 2018-03-10 12:47:02 +02:00
Juho Hiltunen cd991bd2c9 headers: add new file numbers.h with declarations of functions in numbers.c 2018-03-10 09:27:23 +02:00
Juho Hiltunen 07160f9286 headers: add new file synthdata.h with declarations of functions in synthdata.c 2018-03-10 08:23:24 +02:00
Juho Hiltunen 706df97b20 headers: add new file readclause.h with declarations of functions in readclause.c 2018-03-10 07:18:07 +02:00
Juho Hiltunen 30ad5c39f6 move struct MatchRecord to dictionary.c since it's the only file that uses it 2018-03-09 21:08:38 +02:00
Juho Hiltunen 78749f14f8 readability fix: use boolean instead of 0 and 1 for loop control 2018-02-17 18:17:00 +02:00
Reece H. Dunn b8d5d96dea Merge remote-tracking branch 'jaacoppi/maintainability' 2018-01-14 13:43:13 +00:00
Juho Hiltunen da287fb851 Unify terminology for stress
synthesize.h now contains the definitions STRESS_IS_... that should be used with code related to syllable stress.

Note that isBreak and other defines were renumbered so that stress definitions could have values 0-6.

Possible TODOs:
1. Unify with terms used with phonemes, i.e. keywords like isDiminished in compiledata.c and stress_type in phsource/phonemes
2. Add functionality and documentation about STRESS_IS_PRIORITY and STRESS_IS_EMPHASIZED
2018-01-14 15:26:03 +02:00
Juho Hiltunen 88315250ff readability fix: use boolean instead of 0 and 1 for loop control 2018-01-14 15:22:37 +02:00
Juho Hiltunen afb4fe75e2 fi: fix behaviour of S_2_TO_HEAVY (adding secondary stress)
Stress flag S_2_TO_HEAVY is currently only used by finnish.

Current behaviour skips adding secondary stress if the following syllable is heavy. The behaviour should be to skip adding secondary stress if the rest of the word (excluding last syllable) contains a heavy syllable.

Source of grammar rule and examples of expected behaviour: http://scripta.kotus.fi/visk/sisallys.php?p=13
2018-01-14 14:48:36 +02:00
Reece H. Dunn 50a2d8e291 Revert "Use strcpy instead of memcpy+strlen."
This reverts commit 119c200e00.
2017-11-04 08:14:59 +00:00
Reece H. Dunn 7f42e0aaca compiledict.c: Fix -Wmissing-prototypes warnings. 2017-10-11 07:51:36 +01:00
Reece H. Dunn 74f9f5e34b wavegen.c: Fix -Wmissing-prototypes warnings. 2017-10-10 21:37:46 +01:00
Reece H. Dunn 119c200e00 Use strcpy instead of memcpy+strlen.
This replaces uses of:

	memcpy(dst, src, strlen(src))

with:

	strcpy(dst, src)

This fixes issues with reading past the end of the copied buffer
(e.g. when processing word-based replacements for emoji characters)
by ensuring that the destination buffer is null terminated.

Reported by Michael Curran <mick@nvaccess.org>
2017-10-01 08:50:56 +01:00
Reece H. Dunn a2f751044c Remove unused letter assignment in MatchRule.
This was identified by the clang static analyser. The letter
variable is set in the various match_type switch cases, so
does not need to be initialised in the start of the while loop.
2017-09-12 07:46:53 +01:00
Reece H. Dunn ecdff298b0 last_letter in MatchRule is not used.
This was identified by the clang static analyser.
2017-09-12 07:43:00 +01:00
Reece H. Dunn 8a777385a8 Use wflags to access wtab->flags in LookupDict2.
Clang static analysis reports a 'Dereference of null pointer'
error when accessing wtab->flags. This is properly guarded
against when setting the wflags variable, so use that variable
instead.
2017-09-12 07:36:54 +01:00
Reece H. Dunn e6ea8fabea Initialise ending in RemoveEnding.
Clang static analysis reports this as several 'Result of operation
is garbage or undefined' errors, when `ending` has not been set
due to no matching endings.
2017-09-12 07:29:07 +01:00
Reece H. Dunn 988db184ea Prevent invalid access to word in LookupDictList.
Clang static analysis reports this as several 'Result of operation
is garbage or undefined' errors.
2017-09-12 07:17:46 +01:00
Reece H. Dunn 22270bd259 Fix reading hash table entries > 128.
This is related to ebfa320956, but
when reading the hash chain entry length, not writing it.

If char is signed, then before this change the length would be
negative, causing problems loading the dictionary.
2017-07-26 21:11:44 +01:00
Reece H. Dunn 921229259d Use int to store the value from GetFileLength.
This fixes the clang warning:

    comparison of unsigned expression < 0 is always false
    [-Wtautological-compare]

Reported by Reef Turner <reef@nvaccess.org>
2017-07-26 19:50:03 +01:00
Reece H. Dunn 48ca2239bb Fix non-Latin character languages falling back to English when reading Latin characters. 2017-05-12 07:35:27 +01:00
Reece H. Dunn 2f8f125c68 Remove voice/language support for alphabet2.
This is not used by any of the espeak-ng voices and languages.
Additionally, this functionality would be superceded by support
for specifying the language used by different scripts in the
language argument on the command line.
2017-05-07 15:10:42 +01:00