code cleanup: move is_str_totally_null()

This commit is contained in:
Juho Hiltunen
2022-09-17 17:28:52 +03:00
parent 64f12fec87
commit 14ede3e372
5 changed files with 13 additions and 12 deletions
+11
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
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
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
-8
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'))
-3
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);