X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/8def70c3ec6f81f95673c0de67a75b5a6b2e9e1c..b3d375b244187cd77f45dc013668e6273e133179:/putty.h diff --git a/putty.h b/putty.h index 20cff543..0c97562b 100644 --- a/putty.h +++ b/putty.h @@ -348,6 +348,19 @@ enum { SER_FLOW_NONE, SER_FLOW_XONXOFF, SER_FLOW_RTSCTS, SER_FLOW_DSRDTR }; +/* + * Tables of string <-> enum value mappings used in settings.c. + * Defined here so that backends can export their GSS library tables + * to the cross-platform settings code. + */ +struct keyval { char *s; int v; }; + +#ifndef NO_GSSAPI +extern const int ngsslibs; +extern const char *const gsslibnames[];/* for displaying in configuration */ +extern const struct keyval gsslibkeywords[]; /* for storing by settings.c */ +#endif + extern const char *const ttymodes[]; enum { @@ -461,6 +474,7 @@ struct config_tag { int try_ki_auth; int try_gssapi_auth; /* attempt gssapi auth */ int gssapifwd; /* forward tgt via gss */ + int ssh_gsslist[4]; /* preference order for local GSS libs */ int ssh_subsys; /* run a subsystem rather than a command */ int ssh_subsys2; /* fallback to go with remote_cmd_ptr2 */ int ssh_no_shell; /* avoid running a shell */ @@ -472,6 +486,7 @@ struct config_tag { char ttymodes[768]; /* MODE\tVvalue\0MODE\tA\0\0 */ char environmt[1024]; /* VAR\tvalue\0VAR\tvalue\0\0 */ char username[100]; + int username_from_env; char localusername[100]; int rfc_environ; int passive_telnet; @@ -591,7 +606,8 @@ struct config_tag { /* SSH bug compatibility modes */ int sshbug_ignore1, sshbug_plainpw1, sshbug_rsa1, sshbug_hmac2, sshbug_derivekey2, sshbug_rsapad2, - sshbug_pksessid2, sshbug_rekey2, sshbug_maxpkt2; + sshbug_pksessid2, sshbug_rekey2, sshbug_maxpkt2, + sshbug_ignore2; /* * ssh_simple means that we promise never to open any channel other * than the main one, which means it can safely use a very large @@ -790,6 +806,7 @@ void random_destroy_seed(void); */ Backend *backend_from_name(const char *name); Backend *backend_from_proto(int proto); +int get_remote_username(Config *cfg, char *user, size_t len); char *save_settings(char *section, Config * cfg); void save_open_settings(void *sesskey, Config *cfg); void load_settings(char *section, Config * cfg); @@ -823,6 +840,7 @@ void term_free(Terminal *); void term_size(Terminal *, int, int, int); void term_paint(Terminal *, Context, int, int, int, int, int); void term_scroll(Terminal *, int, int); +void term_scroll_to_selection(Terminal *, int); void term_pwron(Terminal *, int); void term_clrsb(Terminal *); void term_mouse(Terminal *, Mouse_Button, Mouse_Button, Mouse_Action, @@ -852,6 +870,8 @@ char *term_get_ttymode(Terminal *term, const char *mode); int term_get_userpass_input(Terminal *term, prompts_t *p, unsigned char *in, int inlen); +int format_arrow_key(char *buf, Terminal *term, int xkey, int ctrl); + /* * Exports from logging.c. */