diff --git a/src/libespeak-ng/readclause.c b/src/libespeak-ng/readclause.c index 0793f2e7..ea286fd3 100644 --- a/src/libespeak-ng/readclause.c +++ b/src/libespeak-ng/readclause.c @@ -186,11 +186,11 @@ static const char *LookupSpecial(Translator *tr, const char *string, char *text_ { unsigned int flags[2]; char phonemes[55]; - char phonemes2[55]; char *string1 = (char *)string; flags[0] = flags[1] = 0; if (LookupDictList(tr, &string1, phonemes, flags, 0, NULL)) { + char phonemes2[55]; SetWordStress(tr, phonemes, flags, -1, 0); DecodePhonemes(phonemes, phonemes2); sprintf(text_out, "[\002%s]]", phonemes2); @@ -208,7 +208,6 @@ static const char *LookupCharName(Translator *tr, int c, int only) unsigned int flags[2]; char single_letter[24]; char phonemes[60]; - char phonemes2[60]; const char *lang_name = NULL; char *string; static char buf[60]; @@ -255,6 +254,7 @@ static const char *LookupCharName(Translator *tr, int c, int only) } if (phonemes[0]) { + char phonemes2[60]; if (lang_name) { SetWordStress(translator2, phonemes, flags, -1, 0); DecodePhonemes(phonemes, phonemes2); @@ -277,7 +277,7 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output // c1: the punctuation character // c2: the following character - int punct_count; + const char *punctname = NULL; int soundicon; int attributes; @@ -286,7 +286,6 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output int len; int bufix1; char buf[200]; - char buf2[80]; char ph_buf[30]; c2 = *c2_ptr; @@ -307,8 +306,9 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output if (punctname == NULL) return -1; + if ((*bufix == 0) || (end_clause == 0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) { - punct_count = 1; + int punct_count = 1; while (!Eof() && (c2 == c1) && (c1 != '<')) { // don't eat extra '<', it can miss XML tags punct_count++; c2 = GetC(); @@ -324,6 +324,7 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output if (embedded_value[EMBED_S] < 300) sprintf(buf, "\001+10S"); // Speak punctuation name faster, unless we are already speaking fast. It would upset Sonic SpeedUp + char buf2[80]; while (punct_count-- > 0) { sprintf(buf2, " %s", punctname); strcat(buf, buf2); @@ -381,7 +382,6 @@ int AddNameData(const char *name, int wide) int ix; int len; - void *vp; if (wide) { len = (wcslen((const wchar_t *)name)+1)*sizeof(wchar_t); @@ -391,6 +391,7 @@ int AddNameData(const char *name, int wide) if (namedata_ix+len >= n_namedata) { // allocate more space for marker names + void *vp; if ((vp = realloc(namedata, namedata_ix+len + 1000)) == NULL) return -1; // failed to allocate, original data is unchanged but ignore this new name // !!! Bug?? If the allocated data shifts position, then pointers given to user application will be invalid @@ -490,7 +491,6 @@ int ReadClause(Translator *tr, char *buf, short *charix, int *charix_top, int n_ int c1 = ' '; // current character int c2; // next character int cprev = ' '; // previous character - int cprev2 = ' '; int c_next; int parag; int ix = 0; @@ -548,8 +548,7 @@ int ReadClause(Translator *tr, char *buf, short *charix, int *charix_top, int n_ return CLAUSE_NONE; } } - - cprev2 = cprev; + int cprev2 = cprev; cprev = c1; c1 = c2;