X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/6473492058e854537bb061277bd9eb5c319bf11a..4044fc45ca4a742c0ff29a49faca7cc9db99b251:/putty.h diff --git a/putty.h b/putty.h index 19000fc7..28320de0 100644 --- a/putty.h +++ b/putty.h @@ -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 */ @@ -184,8 +187,10 @@ enum { }; struct backend_tag { - char *(*init) (void *frontend_handle, void **backend_handle, + char *(*init) (void *frontend_handle, void **backend_handle, Config *cfg, char *host, int port, char **realhost, int nodelay); + /* back->reconfig() passes in a replacement configuration. */ + void (*reconfig) (void *handle, Config *cfg); /* back->send() returns the current amount of buffered data. */ int (*send) (void *handle, char *buf, int len); /* back->sendbuffer() does the same thing but without attempting a send */ @@ -366,9 +371,10 @@ struct config_tag { }; /* - * You can compile with -DSSH_DEFAULT to have ssh by default. + * You can compile with -DTELNET_DEFAULT to have telnet by default + * (otherwise SSH is the default). */ -#ifndef SSH_DEFAULT +#ifdef TELNET_DEFAULT #define DEFAULT_PROTOCOL PROT_TELNET #define DEFAULT_PORT 23 #else @@ -407,9 +413,6 @@ GLOBAL int flags; GLOBAL int default_protocol; GLOBAL int default_port; -/* This variable, OTOH, needs to be made non-global ASAP. FIXME. */ -GLOBAL Config cfg; - struct RSAKey; /* be a little careful of scope */ /* @@ -491,14 +494,14 @@ void registry_cleanup(void); * which I can reliably set aside to indicate `nil'. The string * function is perfectly all right returning NULL, of course.) */ -char *platform_default_s(char *name); -int platform_default_i(char *name, int def); +char *platform_default_s(const char *name); +int platform_default_i(const 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); @@ -527,7 +530,8 @@ void term_provide_logctx(Terminal *term, void *logctx); /* * Exports from logging.c. */ -void *log_init(void *frontend); +void *log_init(void *frontend, Config *cfg); +void log_reconfig(void *logctx, Config *cfg); void logfopen(void *logctx); void logfclose(void *logctx); void logtraffic(void *logctx, unsigned char c, int logmode); @@ -616,7 +620,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);