The Unicode module no longer depends on `cfg', since it gets the

relevant bits of it passed in to init_ucs(). (Actually I pass in all
of it in the Windows version, since it's a bit hairy in there.)

[originally from svn r2565]
This commit is contained in:
Simon Tatham 2003-01-12 14:59:54 +00:00
Родитель 5ecbac2441
Коммит ac2367bc72
6 изменённых файлов: 16 добавлений и 16 удалений

Просмотреть файл

@ -416,7 +416,7 @@ static const struct cp_list_item cp_list[] = {
static void link_font(WCHAR * line_tbl, WCHAR * font_tbl, WCHAR attr);
void init_ucs(void)
void init_ucs(Config *cfg)
{
int i, j;
int used_dtf = 0;
@ -426,14 +426,14 @@ void init_ucs(void)
tbuf[i] = i;
/* Decide on the Line and Font codepages */
line_codepage = decode_codepage(cfg.line_codepage);
line_codepage = decode_codepage(cfg->line_codepage);
if (font_codepage <= 0) {
font_codepage=0;
dbcs_screenfont=0;
}
if (cfg.vtmode == VT_OEMONLY) {
if (cfg->vtmode == VT_OEMONLY) {
font_codepage = 437;
dbcs_screenfont = 0;
if (line_codepage <= 0)
@ -453,7 +453,7 @@ void init_ucs(void)
if (font_codepage == 437)
unitab_font[0] = unitab_font[255] = 0xFFFF;
}
if (cfg.vtmode == VT_XWINDOWS)
if (cfg->vtmode == VT_XWINDOWS)
memcpy(unitab_font + 1, unitab_xterm_std,
sizeof(unitab_xterm_std));
@ -461,14 +461,14 @@ void init_ucs(void)
get_unitab(CP_OEMCP, unitab_oemcp, 1);
/* Collect CP437 ucs table for SCO acs */
if (cfg.vtmode == VT_OEMANSI || cfg.vtmode == VT_XWINDOWS)
if (cfg->vtmode == VT_OEMANSI || cfg->vtmode == VT_XWINDOWS)
memcpy(unitab_scoacs, unitab_oemcp, sizeof(unitab_scoacs));
else
get_unitab(437, unitab_scoacs, 1);
/* Collect line set ucs table */
if (line_codepage == font_codepage &&
(dbcs_screenfont || cfg.vtmode == VT_POORMAN || font_codepage==0)) {
(dbcs_screenfont || cfg->vtmode == VT_POORMAN || font_codepage==0)) {
/* For DBCS and POOR fonts force direct to font */
used_dtf = 1;
@ -535,14 +535,14 @@ void init_ucs(void)
unitab_ctrl[i] = 0xFF;
/* Generate line->screen direct conversion links. */
if (cfg.vtmode == VT_OEMANSI || cfg.vtmode == VT_XWINDOWS)
if (cfg->vtmode == VT_OEMANSI || cfg->vtmode == VT_XWINDOWS)
link_font(unitab_scoacs, unitab_oemcp, ATTR_OEMCP);
link_font(unitab_line, unitab_font, ATTR_ACP);
link_font(unitab_scoacs, unitab_font, ATTR_ACP);
link_font(unitab_xterm, unitab_font, ATTR_ACP);
if (cfg.vtmode == VT_OEMANSI || cfg.vtmode == VT_XWINDOWS) {
if (cfg->vtmode == VT_OEMANSI || cfg->vtmode == VT_XWINDOWS) {
link_font(unitab_line, unitab_oemcp, ATTR_OEMCP);
link_font(unitab_xterm, unitab_oemcp, ATTR_OEMCP);
}
@ -555,7 +555,7 @@ void init_ucs(void)
}
/* Last chance, if !unicode then try poorman links. */
if (cfg.vtmode != VT_UNICODE) {
if (cfg->vtmode != VT_UNICODE) {
static char poorman_scoacs[] =
"CueaaaaceeeiiiAAE**ooouuyOUc$YPsaiounNao?++**!<>###||||++||++++++--|-+||++--|-+----++++++++##||#aBTPEsyt******EN=+><++-=... n2* ";
static char poorman_latin1[] =

Просмотреть файл

@ -2306,7 +2306,7 @@ int main(int argc, char **argv)
inst->compound_text_atom = gdk_atom_intern("COMPOUND_TEXT", FALSE);
inst->utf8_string_atom = gdk_atom_intern("UTF8_STRING", FALSE);
inst->direct_to_font = init_ucs(font_charset);
inst->direct_to_font = init_ucs(cfg.line_codepage, font_charset);
inst->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

Просмотреть файл

@ -69,7 +69,7 @@ void (*putty_signal(int sig, void (*func)(int)))(int);
/*
* Exports from unicode.c.
*/
int init_ucs(int font_charset);
int init_ucs(char *line_codepage, int font_charset);
/*
* Spare function exported directly from uxnet.c.

Просмотреть файл

@ -104,7 +104,7 @@ int wc_to_mb(int codepage, int flags, wchar_t *wcstr, int wclen,
/*
* Return value is TRUE if pterm is to run in direct-to-font mode.
*/
int init_ucs(int font_charset)
int init_ucs(char *linecharset, int font_charset)
{
int i, ret = 0;
@ -120,9 +120,9 @@ int init_ucs(int font_charset)
* line_codepage should be decoded from the specification in
* cfg.
*/
line_codepage = charset_from_mimeenc(cfg.line_codepage);
line_codepage = charset_from_mimeenc(linecharset);
if (line_codepage == CS_NONE)
line_codepage = charset_from_xenc(cfg.line_codepage);
line_codepage = charset_from_xenc(linecharset);
/*
* If line_codepage is _still_ CS_NONE, we assume we're using

Просмотреть файл

@ -1207,7 +1207,7 @@ static void init_fonts(int pick_width, int pick_height)
}
fontflag[0] = fontflag[1] = fontflag[2] = 1;
init_ucs();
init_ucs(&cfg);
}
static void another_font(int fontno)

Просмотреть файл

@ -201,6 +201,6 @@ void EnableSizeTip(int bEnable);
/*
* Exports from unicode.c.
*/
void init_ucs(void);
void init_ucs(Config *);
#endif