Browse Source

code cleanup: move is_str_totally_null()

master
Juho Hiltunen 2 years ago
parent
commit
14ede3e372

+ 11
- 0
src/libespeak-ng/common.c View File

@@ -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);
}



+ 1
- 0
src/libespeak-ng/common.h View File

@@ -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);

+ 1
- 1
src/libespeak-ng/dictionary.c View File

@@ -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

+ 0
- 8
src/libespeak-ng/readclause.c View File

@@ -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'))

+ 0
- 3
src/libespeak-ng/readclause.h View File

@@ -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);

Loading…
Cancel
Save