if (DIRECT_FONT(ucsdata->unitab_line[i]))
continue;
if (!ucsdata->uni_tbl) {
- ucsdata->uni_tbl = smalloc(256 * sizeof(char *));
+ ucsdata->uni_tbl = snewn(256, char *);
memset(ucsdata->uni_tbl, 0, 256 * sizeof(char *));
}
j = ((ucsdata->unitab_line[i] >> 8) & 0xFF);
if (!ucsdata->uni_tbl[j]) {
- ucsdata->uni_tbl[j] = smalloc(256 * sizeof(char));
+ ucsdata->uni_tbl[j] = snewn(256, char);
memset(ucsdata->uni_tbl[j], 0, 256 * sizeof(char));
}
ucsdata->uni_tbl[j][ucsdata->unitab_line[i] & 0xFF] = i;
/* Last chance, if !unicode then try poorman links. */
if (cfg->vtmode != VT_UNICODE) {
- static char poorman_scoacs[] =
+ static const char poorman_scoacs[] =
"CueaaaaceeeiiiAAE**ooouuyOUc$YPsaiounNao?++**!<>###||||++||++++++--|-+||++--|-+----++++++++##||#aBTPEsyt******EN=+><++-=... n2* ";
- static char poorman_latin1[] =
+ static const char poorman_latin1[] =
" !cL.Y|S\"Ca<--R~o+23'u|.,1o>///?AAAAAAACEEEEIIIIDNOOOOOxOUUUUYPBaaaaaaaceeeeiiiionooooo/ouuuuypy";
- static char poorman_vt100[] = "*#****o~**+++++-----++++|****L.";
+ static const char poorman_vt100[] = "*#****o~**+++++-----++++|****L.";
for (i = 160; i < 256; i++)
if (!DIRECT_FONT(ucsdata->unitab_line[i]) &&
wchar_t xlat_uskbd2cyrllic(int ch)
{
- static wchar_t cyrtab[] = {
+ static const wchar_t cyrtab[] = {
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23,
return cyrtab[ch&0x7F];
}
-int check_compose(int first, int second)
+int check_compose_internal(int first, int second, int recurse)
{
- static struct {
+ static const struct {
char first, second;
wchar_t composed;
} composetbl[] = {
0, 0, 0}
}, *c;
- static int recurse = 0;
int nc = -1;
for (c = composetbl; c->first; c++) {
}
if (recurse == 0) {
- recurse = 1;
- nc = check_compose(second, first);
+ nc = check_compose_internal(second, first, 1);
if (nc == -1)
- nc = check_compose(toupper(first), toupper(second));
+ nc = check_compose_internal(toupper(first), toupper(second), 1);
if (nc == -1)
- nc = check_compose(toupper(second), toupper(first));
- recurse = 0;
+ nc = check_compose_internal(toupper(second), toupper(first), 1);
}
return nc;
}
+int check_compose(int first, int second)
+{
+ return check_compose_internal(first, second, 0);
+}
+
int decode_codepage(char *cp_name)
{
char *s, *d;
return codepage;
}
-char *cp_name(int codepage)
+const char *cp_name(int codepage)
{
const struct cp_list_item *cpi, *cpno;
static char buf[32];
* Return the nth code page in the list, for use in the GUI
* configurer.
*/
-char *cp_enumerate(int index)
+const char *cp_enumerate(int index)
{
if (index < 0 || index >= lenof(cp_list))
return NULL;