There is no fr-CA language dialect dialect file, nor has there
been in the espeak/espeak-ng history.
The fr-CA phoneme table defined the additional phonemes [U], [y"],
[E:], and [A]. The fr-FR phoneme table mapped these to [u], [y],
[E], and [a] respectively. This meant to describe the phonemes that
have not been merged in fr-CA, but have merged in fr-FR, as described
in https://en.wikipedia.org/wiki/Quebec_French_phonology.
The only use of these phonemes in the French dictionary was with
the word "tramway" using [E:]. This has been replaced with [E] to
match the rest of the dictionary file transcriptions, and those
phonemes for fr-CA have been removed.
If fr-CA is supported in the future, the French dictionary would
need to be modified to reverse the merger of the phonemes that are
not merged in fr-CA, with the merge logic being performed in the
fr-FR phoneme table like in the code being removed in this commit.
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 <[email protected]>
tests/language.test: Use different hashing commands when needed
Outside of Linux platforms, sha1 hashing from the command-line is accomplished
by commands other than sha1sum. OSX uses shasum and FreeBSD uses sha1, so I've
added in detection for the appropriate command before falling back and failing
the test.