Browse Source

Remove the NEED_WCHAR_FUNCTIONS code for wchar/wctype compatibility.

master
Reece H. Dunn 8 years ago
parent
commit
c80829a5fd
1 changed files with 0 additions and 136 deletions
  1. 0
    136
      src/libespeak-ng/readclause.c

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

@@ -289,142 +289,6 @@ static const short wchar_toupper[] = {
0, 0
};

#ifdef NEED_WCHAR_FUNCTIONS

// use ctype.h functions for Latin1 (character < 0x100)
int iswalpha(int c)
{
if (c < 0x80)
return isalpha(c);
if ((c > 0x3040) && (c <= 0xa700))
return 1; // japanese, chinese characters
if (c > MAX_WALPHA)
return 0;
return walpha_tab[c-0x80];
}

int iswdigit(int c)
{
if (c < 0x80)
return isdigit(c);
return 0;
}

int iswalnum(int c)
{
if (iswdigit(c))
return 1;
return iswalpha(c);
}

int towlower(int c)
{
int x;
int ix;

if (c < 0x80)
return tolower(c);

if ((c > MAX_WALPHA) || ((x = walpha_tab[c-0x80]) >= 0xfe))
return c;

if (x == 0xfd) {
// special cases, lookup translation table
for (ix = 0; wchar_tolower[ix] != 0; ix += 2) {
if (wchar_tolower[ix] == c)
return wchar_tolower[ix+1];
}
}
return c + x; // convert to lower case
}

int towupper(int c)
{
int ix;
// check whether a previous character code is the upper-case equivalent of this character
if (towlower(c-32) == c)
return c-32; // yes, use it
if (towlower(c-1) == c)
return c-1;
for (ix = 0; wchar_toupper[ix] != 0; ix += 2) {
if (wchar_toupper[ix] == c)
return wchar_toupper[ix+1];
}
return c; // no
}

int iswupper(int c)
{
int x;
if (c < 0x80)
return isupper(c);
if (((c > MAX_WALPHA) || (x = walpha_tab[c-0x80]) == 0) || (x == 0xff))
return 0;
return 1;
}

int iswlower(int c)
{
if (c < 0x80)
return islower(c);
if ((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff))
return 0;
return 1;
}

int iswspace(int c)
{
if (c < 0x80)
return isspace(c);
if (c == 0xa0)
return 1;
return 0;
}

int iswpunct(int c)
{
if (c < 0x100)
return ispunct(c);
return 0;
}

const wchar_t *wcschr(const wchar_t *str, int c)
{
while (*str != 0) {
if (*str == c)
return str;
str++;
}
return NULL;
}

#ifndef WINCE
// wcslen() is provided by WINCE, but not the other wchar functions
const int wcslen(const wchar_t *str)
{
int ix = 0;

while (*str != 0)
ix++;
return ix;
}
#endif

float wcstod(const wchar_t *str, wchar_t **tailptr)
{
int ix;
char buf[80];
while (isspace(*str)) str++;
for (ix = 0; ix < 80; ix++) {
buf[ix] = str[ix];
if (isspace(buf[ix]))
break;
}
*tailptr = (wchar_t *)&str[ix];
return atof(buf);
}
#endif

// use internal data for iswalpha up to U+024F
// iswalpha() on Windows is unreliable (U+AA, U+BA).
int iswalpha2(int c)

Loading…
Cancel
Save