The definitions for towlower() and towupper() are defined in /usr/include/wctype.h on FreeBSD platforms. I just removed the define and used the ucd_ equivilent where towlower/towupper were found. /bin/sh ./libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -fPIC -fvisibility=hidden -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"/usr/local/share/espeak- ng-data\" -DLIBESPEAK_NG_EXPORT -Isrc/include -Isrc/include/compat -I src/ucd-tools/src/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L -Wno-endif-lab els -g -O2 -std=c99 -MT src/libespeak-ng/src_libespeak_ng_la-readclause.lo -MD -MP -MF src/libespeak-ng/.deps/src_libespeak_ng_la-readclause.Tpo -c -o src/libespeak-n g/src_libespeak_ng_la-readclause.lo `test -f 'src/libespeak-ng/readclause.c' || echo './'`src/libespeak-ng/readclause.c libtool: compile: cc -DHAVE_CONFIG_H -I. -fPIC -fvisibility=hidden -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"/usr/local/share/espeak-ng-data\" -DLIBESPEAK_NG_EXPO RT -Isrc/include -Isrc/include/compat -I src/ucd-tools/src/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L -Wno-endif-labels -g -O2 -std=c99 -MT src/li bespeak-ng/src_libespeak_ng_la-readclause.lo -MD -MP -MF src/libespeak-ng/.deps/src_libespeak_ng_la-readclause.Tpo -c src/libespeak-ng/readclause.c -fPIC -DPIC -o src/l ibespeak-ng/.libs/src_libespeak_ng_la-readclause.o In file included from src/libespeak-ng/readclause.c:32: In file included from src/include/compat/wctype.h:30: /usr/include/wctype.h:73:8: error: conflicting types for 'ucd_tolower' wint_t towlower(wint_t); ^ src/include/compat/wchar.h:37:18: note: expanded from macro 'towlower' ^ src/ucd-tools/src/include/ucd/ucd.h:503:13: note: previous declaration is here codepoint_t ucd_tolower(codepoint_t c); ^ In file included from src/libespeak-ng/readclause.c:32: In file included from src/include/compat/wctype.h:30: /usr/include/wctype.h:74:8: error: conflicting types for 'ucd_toupper' wint_t towupper(wint_t); ^ src/include/compat/wchar.h:38:18: note: expanded from macro 'towupper' ^ src/ucd-tools/src/include/ucd/ucd.h:491:13: note: previous declaration is here codepoint_t ucd_toupper(codepoint_t c); ^ src/libespeak-ng/readclause.c:366:19: warning: implicit declaration of function 'mkstemp' is invalid in C99 [-Wimplicit-function-declaration] if ((fd_temp = mkstemp(fname_temp)) >= 0) ^ 1 warning and 2 errors generated.master
@@ -32,7 +32,4 @@ | |||
#include <ucd/ucd.h> | |||
#define towlower ucd_tolower | |||
#define towupper ucd_toupper | |||
#endif |
@@ -163,7 +163,7 @@ int towlower2(unsigned int c) | |||
if (c == 'I' && translator->langopts.dotless_i) | |||
return 0x131; // I -> ı | |||
return towlower(c); | |||
return ucd_tolower(c); | |||
} | |||
static int IsRomanU(unsigned int c) | |||
@@ -842,7 +842,7 @@ static int attrnumber(const wchar_t *pw, int default_value, int type) | |||
while (IsDigit09(*pw)) | |||
value = value*10 + *pw++ - '0'; | |||
if ((type == 1) && (towlower(*pw) == 's')) { | |||
if ((type == 1) && (ucd_tolower(*pw) == 's')) { | |||
// time: seconds rather than ms | |||
value *= 1000; | |||
} |
@@ -1791,13 +1791,13 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in, | |||
// don't convert the case of the second character unless the next letter is also upper case | |||
c2 = new_c >> 16; | |||
if (upper_case && iswupper(next_in)) | |||
c2 = towupper(c2); | |||
c2 = ucd_toupper(c2); | |||
*insert = c2; | |||
new_c &= 0xffff; | |||
} | |||
if (upper_case) | |||
new_c = towupper(new_c); | |||
new_c = ucd_toupper(new_c); | |||
*wordflags |= FLAG_CHAR_REPLACED; | |||
return new_c; |
@@ -178,7 +178,7 @@ void uprintf(FILE *out, codepoint_t c, const char *format) | |||
uprintf_is(out, c, *++format); | |||
break; | |||
case 'L': /* lowercase */ | |||
uprintf_codepoint(out, towlower(c), *++format); | |||
uprintf_codepoint(out, ucd_tolower(c), *++format); | |||
break; | |||
case 's': /* script */ | |||
fputs(ucd_get_script_string(ucd_lookup_script(c)), out); | |||
@@ -187,7 +187,7 @@ void uprintf(FILE *out, codepoint_t c, const char *format) | |||
uprintf_codepoint(out, ucd_totitle(c), *++format); | |||
break; | |||
case 'U': /* uppercase */ | |||
uprintf_codepoint(out, towupper(c), *++format); | |||
uprintf_codepoint(out, ucd_toupper(c), *++format); | |||
break; | |||
} | |||
++format; |