diff --git a/src/syncterm/menu.c b/src/syncterm/menu.c index 4ff1a2cb0772a45914cbc444fab9d40f1028c38b..423887fa397672bcf32cbfd19d979344f7b1653b 100644 --- a/src/syncterm/menu.c +++ b/src/syncterm/menu.c @@ -23,6 +23,7 @@ void viewscroll(void) struct text_info txtinfo; int x,y; struct mouse_event mevent; + int old_xlat=ciolib_xlat; x=wherex(); y=wherey(); @@ -49,7 +50,7 @@ void viewscroll(void) cputs("Scrollback"); gotoxy(cterm->width-9,1); cputs("Scrollback"); - ciolib_xlat = FALSE; + ciolib_xlat = old_xlat; gotoxy(1,1); key=getch(); switch(key) { diff --git a/src/syncterm/term.c b/src/syncterm/term.c index 69bab3b942e4a5eb402fee94a3e0ebe97e5f7df7..779a02b7e39b5ad48647d64485fdc351b17df4ab 100644 --- a/src/syncterm/term.c +++ b/src/syncterm/term.c @@ -169,6 +169,7 @@ void update_status(struct bbslist *bbs, int speed, int ooii_mode) static int oldspeed=0; int timeon; char sep; + int old_xlat = ciolib_xlat; switch(getfont()) { case 0: @@ -244,7 +245,7 @@ void update_status(struct bbslist *bbs, int speed, int ooii_mode) window(txtinfo.winleft,txtinfo.wintop,txtinfo.winright,txtinfo.winbottom); gotoxy(txtinfo.curx,txtinfo.cury); hold_update=olddmc; - ciolib_xlat = FALSE; + ciolib_xlat = old_xlat; } #if defined(_WIN32) && defined(_DEBUG) && defined(DUMP) @@ -1896,6 +1897,7 @@ void font_control(struct bbslist *bbs) char *buf; struct text_info txtinfo; int i,j,k; + int enable_xlat = 0; if(safe_mode) return; @@ -1927,12 +1929,18 @@ void font_control(struct bbslist *bbs) loadfont(fpick.selected[0]); filepick_free(&fpick); } - else + else { setfont(i,FALSE,1); + if (i >=32 && i<= 35 && cterm->emulation != CTERM_EMULATION_PETASCII) + enable_xlat = TRUE; + if (i==36 && cterm->emulation != CTERM_EMULATION_ATASCII) + enable_xlat = TRUE; + } } break; } uifcbail(); + ciolib_xlat = enable_xlat; setup_mouse_events(); puttext(1,1,txtinfo.screenwidth,txtinfo.screenheight,buf); window(txtinfo.winleft,txtinfo.wintop,txtinfo.winright,txtinfo.winbottom); diff --git a/src/syncterm/uifcinit.c b/src/syncterm/uifcinit.c index c641028a7690795176952baa178a5afb51e1b1a6..ac53827bad1275e3a7c2c08d20b5ec505968bede 100644 --- a/src/syncterm/uifcinit.c +++ b/src/syncterm/uifcinit.c @@ -19,6 +19,7 @@ static int uifc_initialized=0; #define WITH_BOT (1<<2) static void (*bottomfunc)(int); +int orig_ciolib_xlat; int init_uifc(BOOL scrn, BOOL bottom) { int i; @@ -29,6 +30,7 @@ int init_uifc(BOOL scrn, BOOL bottom) { if(!uifc_initialized) { /* Set scrn_len to 0 to prevent textmode() call */ uifc.scrn_len=0; + orig_ciolib_xlat = ciolib_xlat; ciolib_xlat = TRUE; uifc.chars = NULL; if((i=uifcini32(&uifc))!=0) { @@ -72,7 +74,7 @@ void uifcbail(void) { if(uifc_initialized) { uifc.bail(); - ciolib_xlat = FALSE; + ciolib_xlat = orig_ciolib_xlat; } uifc_initialized=0; }