X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/365660096382ada66bee99e2d6794cbb85e60124..4494be0aa8c4b88c1c9c46318fcbf23e9f47f3d6:/putty.h diff --git a/putty.h b/putty.h index 780b4eb4..061f6275 100644 --- a/putty.h +++ b/putty.h @@ -43,6 +43,7 @@ typedef struct terminal_tag Terminal; #define TATTR_ACTCURS 0x40000000UL /* active cursor (block) */ #define TATTR_PASCURS 0x20000000UL /* passive cursor (box) */ #define TATTR_RIGHTCURS 0x10000000UL /* cursor-on-RHS */ +#define TATTR_COMBINING 0x80000000UL /* combining characters */ #define LATTR_NORM 0x00000000UL #define LATTR_WIDE 0x00000001UL @@ -126,13 +127,23 @@ struct unicode_data { #define LGTYP_PACKETS 3 /* logmode: SSH data packets */ typedef enum { + /* Actual special commands. Originally Telnet, but some codes have + * been re-used for similar specials in other protocols. */ TS_AYT, TS_BRK, TS_SYNCH, TS_EC, TS_EL, TS_GA, TS_NOP, TS_ABORT, TS_AO, TS_IP, TS_SUSP, TS_EOR, TS_EOF, TS_LECHO, TS_RECHO, TS_PING, - TS_EOL + TS_EOL, + /* POSIX-style signals. (not Telnet) */ + TS_SIGABRT, TS_SIGALRM, TS_SIGFPE, TS_SIGHUP, TS_SIGILL, + TS_SIGINT, TS_SIGKILL, TS_SIGPIPE, TS_SIGQUIT, TS_SIGSEGV, + TS_SIGTERM, TS_SIGUSR1, TS_SIGUSR2, + /* Pseudo-specials used for constructing the specials menu. */ + TS_SEP, /* Separator */ + TS_SUBMENU, /* Start a new submenu with specified name */ + TS_EXITMENU /* Exit current submenu or end of specials */ } Telnet_Special; struct telnet_special { - const char *name; /* NULL==end, ""==separator */ + const char *name; int code; }; @@ -358,6 +369,7 @@ struct config_tag { int try_ki_auth; int ssh_subsys; /* run a subsystem rather than a command */ int ssh_subsys2; /* fallback to go with remote_cmd2 */ + int ssh_no_shell; /* avoid running a shell */ /* Telnet options */ char termtype[32]; char termspeed[32]; @@ -432,6 +444,7 @@ struct config_tag { int arabicshaping; int bidi; /* Colour options */ + int ansi_colour; int system_colour; int try_palette; int bold_colour; @@ -446,6 +459,7 @@ struct config_tag { /* translations */ int vtmode; char line_codepage[128]; + int utf8_override; int xlat_capslockcyr; /* X11 forwarding */ int x11_forward; @@ -558,6 +572,10 @@ void sys_cursor(void *frontend, int x, int y); void request_paste(void *frontend); void frontend_keypress(void *frontend); void ldisc_update(void *frontend, int echo, int edit); +/* It's the backend's responsibility to invoke this at the start of a + * connection, if necessary; it can also invoke it later if the set of + * special commands changes. It does not need to invoke it at session + * shutdown. */ void update_specials_menu(void *frontend); int from_backend(void *frontend, int is_stderr, const char *data, int len); #define OPTIMISE_IS_SCROLL 1