@@ -167,6 +167,15 @@ int utf8_in2(int *c, const char *buf, int backwards) | |||
return n_bytes+1; | |||
} | |||
int is_str_totally_null(const char* str, int size) { | |||
// Tests if all bytes of str are null up to size | |||
// This should never be reimplemented with integers, because | |||
// this function has to work with unaligned char* | |||
// (casting to int when unaligned may result in ungaranteed behaviors) | |||
return (*str == 0 && memcmp(str, str+1, size-1) == 0); | |||
} | |||
int towlower2(unsigned int c, Translator *translator) | |||
{ | |||
// check for non-standard upper to lower case conversions | |||
@@ -175,3 +184,5 @@ int towlower2(unsigned int c, Translator *translator) | |||
return ucd_tolower(c); | |||
} | |||
@@ -26,6 +26,7 @@ | |||
extern ESPEAK_NG_API int GetFileLength(const char *filename); | |||
extern ESPEAK_NG_API void strncpy0(char *to, const char *from, int size); | |||
int is_str_totally_null(const char* str, int size); // Tests if all bytes of str up to size are null | |||
int towlower2(unsigned int c, Translator *translator); // Supports Turkish I | |||
ESPEAK_NG_API int utf8_in(int *c, const char *buf); |
@@ -36,7 +36,7 @@ | |||
#include "dictionary.h" | |||
#include "numbers.h" // for LookupAccentedLetter, Look... | |||
#include "phoneme.h" // for PHONEME_TAB, phVOWEL, phon... | |||
#include "readclause.h" // for WordToString2, is_str_tota... | |||
#include "readclause.h" // for WordToString2 | |||
#include "speech.h" // for path_home | |||
#include "compiledict.h" // for DecodeRule | |||
#include "synthdata.h" // for PhonemeCode, InterpretPhoneme |
@@ -131,14 +131,6 @@ int clause_type_from_codepoint(uint32_t c) | |||
return CLAUSE_NONE; | |||
} | |||
int is_str_totally_null(const char* str, int size) { | |||
// Tests if all bytes of str are null up to size | |||
// This should never be reimplemented with integers, because | |||
// this function has to work with unaligned char* | |||
// (casting to int when unaligned may result in ungaranteed behaviors) | |||
return (*str == 0 && memcmp(str, str+1, size-1) == 0); | |||
} | |||
static int IsRomanU(unsigned int c) | |||
{ | |||
if ((c == 'I') || (c == 'V') || (c == 'X') || (c == 'L')) |
@@ -34,9 +34,6 @@ typedef struct { | |||
extern PARAM_STACK param_stack[]; | |||
// Tests if all bytes of str up to size are null | |||
int is_str_totally_null(const char* str, int size); | |||
int clause_type_from_codepoint(uint32_t c); | |||
int Eof(void); | |||
const char *WordToString2(unsigned int word); |