1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-06-30 19:12:48 -05:00

Deglobalise the Unicode module. Despite all my grand plans, I've

just done this the very simple way - bundle all the globals into a
data structure and pass pointers around. One particularly ugly wart
is that wc_to_mb now takes a pointer to this structure as an
argument (optional, may be NULL, and unused in any Unicode layer
that's even marginally less of a mess than the Windows one). I do
need to do this properly at some point, but for now this should just
about be adequate. As usual, the Mac port has not been updated.

[originally from svn r2592]
This commit is contained in:
Simon Tatham
2003-01-14 18:28:23 +00:00
parent a185e16467
commit b2374a64fd
10 changed files with 193 additions and 167 deletions

26
putty.h
View File

@ -108,15 +108,18 @@ struct sesslist {
char *buffer; /* so memory can be freed later */
};
GLOBAL int dbcs_screenfont;
GLOBAL int font_codepage;
GLOBAL int line_codepage;
GLOBAL wchar_t unitab_scoacs[256];
GLOBAL wchar_t unitab_line[256];
GLOBAL wchar_t unitab_font[256];
GLOBAL wchar_t unitab_xterm[256];
GLOBAL wchar_t unitab_oemcp[256];
GLOBAL unsigned char unitab_ctrl[256];
struct unicode_data {
char **uni_tbl;
int dbcs_screenfont;
int font_codepage;
int line_codepage;
wchar_t unitab_scoacs[256];
wchar_t unitab_line[256];
wchar_t unitab_font[256];
wchar_t unitab_xterm[256];
wchar_t unitab_oemcp[256];
unsigned char unitab_ctrl[256];
};
#define LGXF_OVR 1 /* existing logfile overwrite */
#define LGXF_APN 0 /* existing logfile append */
@ -497,7 +500,7 @@ int platform_default_i(char *name, int def);
* Exports from terminal.c.
*/
Terminal *term_init(Config *, void *);
Terminal *term_init(Config *, struct unicode_data *, void *);
void term_size(Terminal *, int, int, int);
void term_out(Terminal *);
void term_paint(Terminal *, Context, int, int, int, int, int);
@ -616,7 +619,8 @@ int is_dbcs_leadbyte(int codepage, char byte);
int mb_to_wc(int codepage, int flags, char *mbstr, int mblen,
wchar_t *wcstr, int wclen);
int wc_to_mb(int codepage, int flags, wchar_t *wcstr, int wclen,
char *mbstr, int mblen, char *defchr, int *defused);
char *mbstr, int mblen, char *defchr, int *defused,
struct unicode_data *ucsdata);
wchar_t xlat_uskbd2cyrllic(int ch);
int check_compose(int first, int second);
int decode_codepage(char *cp_name);