https://github.com/espeak-ng/espeak-ng/issues/1072 Signed-off-by: Ulrich Müller <[email protected]>master
@@ -23,6 +23,7 @@ The espeak-ng project is a fork of the espeak project. | |||
Use cmn-latn-pinyin for interpreting latin characters as pinyin | |||
* Update list of voice varants for Android application | |||
* Add Chromium extension (guest271314) | |||
* Replace `ieee80.c` by a free software implementation (Ulrich Müller) | |||
bug fixes: | |||
* Fix reading malformed SSML (Christopher Brannon) |
@@ -1,17 +0,0 @@ | |||
Source: http://www.realitypixels.com/turk/opensource/ | |||
Open Source Repository | |||
courtesy of | |||
Ken Turkowski | |||
The source code available from this page may be freely downloaded and used in | |||
any applications for any purpose, as long as the code is used in its entirety | |||
and the copyright notice and warranty information is retained. | |||
If you make any improvements to this software, you should provide me with said | |||
improvements. | |||
If any of this code is incorporated into a commercial product, you should | |||
notify me of this by email, and provide me with a complimentary copy of said | |||
product. :-) |
@@ -15,11 +15,9 @@ SHARED_VERSION=2:51:1 # = *.so.1.1.51 | |||
MKDIR=mkdir -p | |||
# -Wno-endif-labels : Needed to prevent warnings in ieee80.c. | |||
AM_CFLAGS = \ | |||
-Isrc/include -Isrc/include/compat -I$(srcdir)/src/speechPlayer/include -I$(srcdir)/src/ucd-tools/src/include \ | |||
-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L \ | |||
-Wno-endif-labels | |||
-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L | |||
EXTRA_DIST= | |||
CLEANFILES = dictsource/ru_listx dictsource/cmn_listx dictsource/yue_listx |
@@ -130,13 +130,6 @@ the 1.24.02 source commit. | |||
eSpeak NG Text-to-Speech is released under the [GPL version 3](COPYING) or | |||
later license. | |||
The `ieee80.c` implementation is taken directly from | |||
[ToFromIEEE.c.txt](http://www.realitypixels.com/turk/opensource/ToFromIEEE.c.txt) | |||
which has been made available for use in Open Source applications per the | |||
[license statement](COPYING.IEEE) on http://www.realitypixels.com/turk/opensource/. | |||
The only modifications made to the code is to comment out the `TEST_FP` define | |||
to make it useable in the eSpeak NG library, and to fix compiler warnings. | |||
The `getopt.c` compatibility implementation for getopt support on Windows is | |||
taken from the NetBSD `getopt_long` implementation, which is licensed under a | |||
[2-clause BSD](COPYING.BSD2) license. |
@@ -1,63 +1 @@ | |||
/* Copyright (C) 1989-1991 Apple Computer, Inc. | |||
* | |||
* All rights reserved. | |||
* | |||
* Warranty Information | |||
* Even though Apple has reviewed this software, Apple makes no warranty | |||
* or representation, either express or implied, with respect to this | |||
* software, its quality, accuracy, merchantability, or fitness for a | |||
* particular purpose. As a result, this software is provided "as is," | |||
* and you, its user, are assuming the entire risk as to its quality | |||
* and accuracy. | |||
* | |||
* This code may be used and freely distributed as long as it includes | |||
* this copyright notice and the above warranty information. | |||
* | |||
* Machine-independent I/O routines for IEEE floating-point numbers. | |||
* | |||
* NaN's and infinities are converted to HUGE_VAL or HUGE, which | |||
* happens to be infinity on IEEE machines. Unfortunately, it is | |||
* impossible to preserve NaN's in a machine-independent way. | |||
* Infinities are, however, preserved on IEEE machines. | |||
* | |||
* These routines have been tested on the following machines: | |||
* Apple Macintosh, MPW 3.1 C compiler | |||
* Apple Macintosh, THINK C compiler | |||
* Silicon Graphics IRIS, MIPS compiler | |||
* Cray X/MP and Y/MP | |||
* Digital Equipment VAX | |||
* Sequent Balance (Multiprocesor 386) | |||
* NeXT | |||
* | |||
* | |||
* Implemented by Malcolm Slaney and Ken Turkowski. | |||
* | |||
* Malcolm Slaney contributions during 1988-1990 include big- and little- | |||
* endian file I/O, conversion to and from Motorola's extended 80-bit | |||
* floating-point format, and conversions to and from IEEE single- | |||
* precision floating-point format. | |||
* | |||
* In 1991, Ken Turkowski implemented the conversions to and from | |||
* IEEE double-precision format, added more precision to the extended | |||
* conversions, and accommodated conversions involving +/- infinity, | |||
* NaN's, and denormalized numbers. | |||
*/ | |||
#ifndef IEEE_H | |||
#define IEEE_H | |||
#ifndef applec | |||
typedef double defdouble; | |||
#else applec | |||
typedef long double defdouble; | |||
#endif applec | |||
defdouble ConvertFromIeeeSingle( char *bytes); | |||
defdouble ConvertFromIeeeDouble( char *bytes); | |||
defdouble ConvertFromIeeeExtended(char *bytes); | |||
void ConvertToIeeeSingle( defdouble num, char *bytes); | |||
void ConvertToIeeeDouble( defdouble num, char *bytes); | |||
void ConvertToIeeeExtended(defdouble num, char *bytes); | |||
#endif | |||
double ieee_extended_to_double(const unsigned char *); |
@@ -49,7 +49,7 @@ static double read_double(FILE *stream) | |||
{ | |||
unsigned char bytes[10]; | |||
fread(bytes, sizeof(char), 10, stream); | |||
return ConvertFromIeeeExtended((char *)bytes); | |||
return ieee_extended_to_double(bytes); | |||
} | |||
float polint(float xa[], float ya[], int n, float x) |